注釋
1.注釋是什么
注釋就是給代碼做的一些簡短的說明,讓我們更好的去理解代碼,注意程序執行的時候,不會去執行它
- 第一種注釋 #開頭接一個空格就完事
- 多行注釋,"""開頭"""結尾
代碼實例:
# 這是第一個單行注釋
print("hello python")
"""
print("hello python")
"""
變量
程序就是用來處理數據的,而變量就是用來存儲數據的
1.代碼實例,使用變量
# 定義 qq_number 的變量用來保存 qq 號碼
qq_number = "1234567"
# 使用print可以查看它
print(qq_number)
- 注意,如果你不想通過print查看變量的值,你可以在ipython中定義變量之后,直接輸入變量就行。
2.變量中都包含些什么呢?
- 在內存中創建一個變量,會包括:
- 變量的名稱
- 變量保存的數據
- 變量存儲數據的類型
- 變量的地址(標示)
- 變量的賦值值得是使用'='好給變量賦值,它總是從右邊賦值給左邊
2.什么時候需要使用注釋?
- 注釋不是越多越好,對於一目了然的代碼,不需要添加注釋
- 對於 復雜的操作,應該在操作開始前寫上若干行注釋
- 對於 不是一目了然的代碼,應在其行尾添加注釋(為了提高可讀性,注釋應該至少離開代碼 2 個空格)
- 絕不要描述代碼,假設閱讀代碼的人比你更懂 Python,他只是不知道你的代碼要做什么
在一些正規的開發團隊,通常會有 代碼審核 的慣例,就是一個團隊中彼此閱讀對方的代碼
關於代碼規范
Python
官方提供有一系列 PEP(Python Enhancement Proposals) 文檔- 其中第 8 篇文檔專門針對 Python 的代碼格式 給出了建議,也就是俗稱的 PEP 8
- 文檔地址:https://www.python.org/dev/peps/pep-0008/
- 谷歌有對應的中文文檔:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/
任何語言的程序員,編寫出符合規范的代碼,是開始程序生涯的第一步,特是找工作的時候
3.變量的類型
- 在
Python
中定義變量是 不需要指定類型(在其他很多高級語言中都需要) - 數據類型可以分為 數字型 和 非數字型
- 數字型
- 整型 (
int
) - 浮點型(
float
) - 布爾型(
bool
)- 真
True
非 0 數
—— 非零即真 - 假
False
0
- 真
- 復數型 (
complex
)- 主要用於科學計算,例如:平面場問題、波動問題、電感電容等問題
- 整型 (
- 非數字型
- 字符串
- 列表
- 元組
- 字典
提示:在 Python 2.x 中,整數 根據保存數值的長度還分為:
int
(整數)long
(長整數)
- 使用
type
函數可以查看一個變量的類型
在以上的介紹中,你會發現,它的語法,好像跟JavaScript有點像
first_name = "三"
print(type(first_name))#顯示的是以一個str 字符串類型的變量
4.字符串 與不同類型變量之間的計算
- 這里面可能包含一些問題,你需要注意;
- 在 Python 中,字符串之間可以使用
+
拼接生成新的字符串 - 如果是字符串加一個* 一個數字號意思就是把字符串重復多少次
- 如果是字符串和字符串*就會出一個錯誤,類型錯誤
- 在 Python 中,字符串之間可以使用
print("Hello" + "bmlaoli")
print("Hello" * 100)
print("Hello" * "bmlaoli")
5.變量的輸入以及函數的簡單說明
示例代碼:
name = input("輸入你名字")
print("你輸入的內容是" + name)
print(type(name))# 注意哈,從這里你可以看出來,我們的input是一個str類型
函數 | 說明 |
---|---|
print(x) | 將 x 輸出到控制台 |
type(x) | 查看 x 的變量類型 |
6.類型轉換
函數 | 說明 |
---|---|
int(x) | 將 x 轉換為一個整數 |
float(x) | 將 x 轉換到一個浮點數 |
代碼實例
name = input("請輸入你的年齡")
print(type(name));
print(type(float(name))); # 可以看到這里你會得到一個int類型
格式化輸出
什么是格式化輸出,簡單的理解就是把輸出的內容安裝某種格式進行輸出
1.基礎
這里有一個表格,可以幫助你更好的理解
格式化字符 | 含義 |
---|---|
%s | 字符串 |
%d | 有符號十進制整數,%06d 表示輸出的整數顯示位數,不足的地方使用 0 補全 |
%f | 浮點數,%.2f 表示小數點后只顯示兩位 |
%% | 輸出 % |
2.練習
需求
- 定義字符串變量
name
,輸出 我的名字叫 小明,請多多關照! - 定義整數變量
student_no
,輸出 我的學號是 000001 - 定義小數
price
、weight
、money
,輸出 蘋果單價 9.00 元/斤,購買了 5.00 斤,需要支付 45.00 元 - 定義一個小數
scale
,輸出 數據比例是 10.00%
name = "bmlaoli"
student_no = 1
price = 20
weight = 30
money = price * weight
scale = 0.25
print("我的名字叫 %s,請多多關照!" % name)
print("我的學號是 %06d" % student_no)
print("蘋果單價 %.02f 元/斤,購買 %.02f 斤,需要支付 %.02f 元" % (price, weight, money))
print("數據比例是 %.02f%%" % (scale * 100))
算數運算,
01. 算數運算符
- 算數運算符是 運算符的一種
- 是完成基本的算術運算使用的符號,用來處理四則運算
運算符 | 描述 | 實例 |
---|---|---|
+ | 加 | 10 + 20 = 30 |
- | 減 | 10 - 20 = -10 |
* | 乘 | 10 * 20 = 200 |
/ | 除 | 10 / 20 = 0.5 |
// | 取整除 | 返回除法的整數部分(商) 9 // 2 輸出結果 4 |
% | 取余數 | 返回除法的余數 9 % 2 = 1 |
** | 冪 | 又稱次方、乘方,2 ** 3 = 8 |
- 在 Python 中
*
運算符還可以用於字符串,計算結果就是字符串重復指定次數的結果
In [1]: "-" * 50
Out[1]: '----------------------------------------'
02. 算數運算符的優先級
-
和數學中的運算符的優先級一致,在 Python 中進行數學計算時,同樣也是:
- 先乘除后加減
- 同級運算符是 從左至右 計算
- 可以使用
()
調整計算的優先級
-
以下表格的算數優先級由高到最低順序排列
運算符 | 描述 |
---|---|
** | 冪 (最高優先級) |
* / % // | 乘、除、取余數、取整除 |
+ - | 加法、減法 |
- 例如:
2 + 3 * 5 = 17
(2 + 3) * 5 = 25
2 * 3 + 5 = 11
2 * (3 + 5) = 16
程序執行原理
01. 計算機中的三大件
計算機中包含有較多的硬件,但是一個程序要運行,有 三個 核心的硬件,分別是:
- CPU
- 中央處理器,是一塊超大規模的集成電路
- 負責 處理數據/計算
- 內存
- 臨時 存儲數據(斷電之后,數據會消失)
- 速度快
- 空間小(單位價格高)
- 硬盤
- 永久 存儲數據
- 速度慢
- 空間大(單位價格低)
02.程序執行原理
- 程序 運行之前,程序是 保存在硬盤 中的
- 當要運行一個程序時
- 操作系統會首先讓 CPU 把程序復制到 內存 中
- CPU 執行 內存 中的 程序代碼
程序要執行,首先要被加載到內存
- python程序如何執行的呢?
1. 操作系統會首先讓 **CPU** 把 **Python 解釋器** 的程序復制到 **內存** 中
2. **Python 解釋器** 根據語法規則,**從上向下** 讓 **CPU** 翻譯 **Python 程序中的代碼**
3. **CPU** 負責執行翻譯完成的代碼
變量的命名
1.表示符號和關鍵字
標示符就是程序員定義的 變量名、函數名
名字 需要有 見名知義 的效果。
- 標識符好的構成
- 標示符可以由 字母、下划線 和 數字 組成
- 不能以數字開頭
- 不能與關鍵字重名
- 關鍵字
- 關鍵字 就是在
Python
內部已經使用的標識符 - 關鍵字 具有特殊的功能和含義
- 開發者 不允許定義和關鍵字相同的名字的標示符
import keyword
print(keyword.kwlist)
# import` **關鍵字** 可以導入一個 **“工具包”**
2. 命名的規則,
需要避免python中的關鍵字。而且需要讓別人見名知意
-
在定義變量時,為了保證代碼格式,
=
的左右應該各保留一個空格 -
在
Python
中,如果 變量名 需要由 二個 或 多個單詞 組成時,可以按照以下方式命名- 每個單詞都使用小寫字母
- 單詞與單詞之間使用
_
下划線 連接
- 例如:
first_name
、last_name
、qq_number
、qq_password
-
駝峰命名法
- 當 變量名 是由二個或多個單詞組成時,還可以利用駝峰命名法來命名
- 小駝峰式命名法
- 第一個單詞以小寫字母開始,后續單詞的首字母大寫
- 例如:
firstName
、lastName
- 大駝峰式命名法
- 每一個單詞的首字母都采用大寫字母
- 例如:
FirstName
、LastName
、CamelCase
- 更多的命名規范和技巧。請你去查看官方給出的規范。哪里有詳細的說明
條件判斷語句,if
這里我們全部通過示例代碼,來學習,
1. if else判斷
# 1.if else判斷。
if 今天發工資:
先還信用卡的錢
if 有剩余:
又可以happy了,O(∩_∩)O哈哈~
else:
噢,no。。。還的等30天
else:
盼着發工資
# 注意這里的縮進!`if` 語句以及縮進部分是一個 **完整的代碼塊**
# 2. 輸入用戶年齡
age = int(input("今年多大了?"))
# 判斷是否滿 18 歲
# if 語句以及縮進部分的代碼是一個完整的語法塊
if age >= 18:
print("可以進網吧嗨皮……")
else:
print("你還沒長大,應該回家寫作業!")
# 無論條件是否滿足都會執行
print("這句代碼什么時候執行?")
2. 邏輯判斷,
邏輯判斷的輸入是兩個Boolean值,得出的也是Boolean值,這個我們在js中也曾學習過。原理都是一樣的,只是在編程的語法上有些許的差異。
- Python 中的 邏輯運算符 包括:與 and/或 or/非 not 三種,在js中我們使用的&& || !不知道你是否還記得。
2.1 and
條件1 and 條件2
- 與/並且
- 兩個條件同時滿足,返回
True
- 只要有一個不滿足,就返回
False
條件 1 | 條件 2 | 結果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 不成立 |
不成立 | 成立 | 不成立 |
不成立 | 不成立 | 不成立 |
2.2 or
條件1 or 條件2
- 或/或者
- 兩個條件只要有一個滿足,返回
True
- 兩個條件都不滿足,返回
False
條件 1 | 條件 2 | 結果 |
---|---|---|
成立 | 成立 | 成立 |
成立 | 不成立 | 成立 |
不成立 | 成立 | 成立 |
不成立 | 不成立 | 不成立 |
2.3 not
not 條件
- 非/不是
條件 | 結果 |
---|---|
成立 | 不成立 |
不成立 | 成立 |
代碼實例:
# 練習1: 定義一個整數變量 age,編寫代碼判斷年齡是否正確
age = 100
# 要求人的年齡在 0-120 之間
if age >= 0 and age <= 120:
print("年齡正確")
else:
print("年齡不正確")
3. elif?
elif 是否則如果的簡寫,
- 在開發中,使用
if
可以 判斷條件 - 使用
else
可以處理 條件不成立 的情況 - 但是,如果希望 再增加一些條件,條件不同,需要執行的代碼也不同 時,就可以使用
elif
- 語法格式如下:
if 條件1:
條件1滿足執行的代碼
……
elif 條件2:
條件2滿足時,執行的代碼
……
elif 條件3:
條件3滿足時,執行的代碼
……
else:
以上條件都不滿足時,執行的代碼
……
elif
和else
都必須和if
聯合使用,而不能單獨使用- 可以將
if
、elif
和else
以及各自縮進的代碼,看成一個 完整的代碼塊
4.同時你需要注意的是if是可以嵌套的!
循環while
其實在python中的while循環和js中以及其他語言的while原理是差不多的
1.基本的語法
初始條件設置 —— 通常是重復執行的 計數器
while 條件(判斷 計數器 是否達到 目標次數):
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
處理條件(計數器 + 1)
案例演示:計算1+100的值
# 計算 0 ~ 100 之間所有數字的累計求和結果
# 0. 定義最終結果的變量
result = 0
# 1. 定義一個整數的變量記錄循環的次數
i = 0
# 2. 開始循環
while i <= 100:
print(i)
# 每一次循環,都讓 result 這個變量和 i 這個計數器相加
result += i
# 處理計數器
i += 1
print("0~100之間的數字求和結果 = %d" % result)
2.賦值運算
- 在 Python 中,使用
=
可以給變量賦值 - 在算術運算時,為了簡化代碼的編寫,
Python
還提供了一系列的 與 算術運算符 對應的 賦值運算符 - 注意:賦值運算符中間不能使用空格
運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值為 c |
+= | 加法賦值運算符 | c += a 等效於 c = c + a |
-= | 減法賦值運算符 | c -= a 等效於 c = c - a |
*= | 乘法賦值運算符 | c *= a 等效於 c = c * a |
/= | 除法賦值運算符 | c /= a 等效於 c = c / a |
//= | 取整除賦值運算符 | c //= a 等效於 c = c // a |
%= | 取 模 (余數)賦值運算符 | c %= a 等效於 c = c % a |
**= | 冪賦值運算符 | c **= a 等效於 c = c ** a |
3. break 和 continue
break
和continue
是專門在循環中使用的關鍵字
break
某一條件滿足時,退出循環,不再執行后續重復的代碼continue
某一條件滿足時,不執行后續重復的代碼
4.while 同樣是可以嵌套的
while 條件 1:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
while 條件 2:
條件滿足時,做的事情1
條件滿足時,做的事情2
條件滿足時,做的事情3
...(省略)...
處理條件 2
處理條件 1
字符串
字符串中的轉義字符
\t
在控制台輸出一個 制表符,協助在輸出文本時 垂直方向 保持對齊\n
在控制台輸出一個 換行符
制表符 的功能是在不使用表格的情況下在 垂直方向 按列對齊文本
轉義字符 | 描述 |
---|---|
\\ | 反斜杠符號 |
\' | 單引號 |
\" | 雙引號 |
\n | 換行 |
\t | 橫向制表符 |
\r | 回車 |
更多的運算符
1. 比較(關系)運算符
運算符 | 描述 |
---|---|
== | 檢查兩個操作數的值是否 相等,如果是,則條件成立,返回 True |
!= | 檢查兩個操作數的值是否 不相等,如果是,則條件成立,返回 True |
> | 檢查左操作數的值是否 大於 右操作數的值,如果是,則條件成立,返回 True |
< | 檢查左操作數的值是否 小於 右操作數的值,如果是,則條件成立,返回 True |
>= | 檢查左操作數的值是否 大於或等於 右操作數的值,如果是,則條件成立,返回 True |
<= | 檢查左操作數的值是否 小於或等於 右操作數的值,如果是,則條件成立,返回 True |
Python 2.x 中判斷 不等於 還可以使用
<>
運算符
!=
在 Python 2.x 中同樣可以用來判斷 不等於
2. 邏輯運算符
運算符 | 邏輯表達式 | 描述 |
---|---|---|
and | x and y | 只有 x 和 y 的值都為 True,才會返回 True 否則只要 x 或者 y 有一個值為 False,就返回 False |
or | x or y | 只要 x 或者 y 有一個值為 True,就返回 True 只有 x 和 y 的值都為 False,才會返回 False |
not | not x | 如果 x 為 True,返回 False 如果 x 為 False,返回 True |
3. 賦值運算符
- 在 Python 中,使用
=
可以給變量賦值 - 在算術運算時,為了簡化代碼的編寫,
Python
還提供了一系列的 與 算術運算符 對應的 賦值運算符 - 注意:賦值運算符中間不能使用空格
運算符 | 描述 | 實例 |
---|---|---|
= | 簡單的賦值運算符 | c = a + b 將 a + b 的運算結果賦值為 c |
+= | 加法賦值運算符 | c += a 等效於 c = c + a |
-= | 減法賦值運算符 | c -= a 等效於 c = c - a |
*= | 乘法賦值運算符 | c *= a 等效於 c = c * a |
/= | 除法賦值運算符 | c /= a 等效於 c = c / a |
//= | 取整除賦值運算符 | c //= a 等效於 c = c // a |
%= | 取 模 (余數)賦值運算符 | c %= a 等效於 c = c % a |
**= | 冪賦值運算符 | c **= a 等效於 c = c ** a |
4. 運算符的優先級
- 以下表格的算數優先級由高到最低順序排列
運算符 | 描述 |
---|---|
** | 冪 (最高優先級) |
* / % // | 乘、除、取余數、取整除 |
+ - | 加法、減法 |
<= < > >= | 比較運算符 |
== != | 等於運算符 |
= %= /= //= -= += *= **= | 賦值運算符 |
not or and | 邏輯運算符 |