Python基礎知識
- 條件語句
-
- if語句
- if - else語句
- if - elif - else語句
- assert關鍵字
- 循環語句
-
- while循環
- while - else 循環
- for循環
- for - else 循環
- range()函數
- enumerate()函數
- break語句
- continue 語句
- pass 語句
- 推導式
-
- 清單推導式
- 元組推導式
- 字典推導式
- 集合推導式
- next()函數
條件語句
if語句
if
語句用來對代碼進行邏輯控制,具體用法如下
if expression:
expr_true_suite
-
語句的if
代碼塊隻有當條件表達式expr_true_suite
結果為真時才執行,否則将繼續執行緊跟在該代碼塊後面的語句。expression
- 單個
語句中的if
條件表達式可以通過布爾操作符expression
,and
和or
實作多重條件判斷。not
- 要注意
後面的冒号,以及後面代碼塊的縮進expression
-
語句支援嵌套,即在一個if
語句中嵌入另一個if
語句,進而構成不同層次的選擇結構。if
if - else語句
Python 提供與
if
搭配使用的
else
,如果
if
語句的條件表達式結果布爾值為假,那麼程式将執行
else
語句後的代碼。
其僞代碼文法如下
if expression:
expr_true_suite
else:
expr_false_suite
if - elif - else語句
elif
語句即為
else if
,用來檢查多個表達式是否為真,并在為真時執行特定代碼塊中的代碼。
其僞代碼文法如下
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
.
.
elif expressionN:
exprN_true_suite
else:
expr_false_suite
assert關鍵字
assert
關鍵字我們稱之為“斷言”,當這個關鍵詞後邊的條件為
False
時,程式自動崩潰并抛出
AssertionError
的異常。
示例代碼
運作結果
AssertionError Traceback (most recent call last) <ipython-input-1-0295be16ec13> in <module> ----> 1 assert 3 > 7
AssertionError:
循環語句
while循環
while
語句最基本的形式包括一個位于頂部的布爾表達式,一個或多個屬于
while
代碼塊的縮進語句。
while
循環的代碼塊會一直循環執行,直到布爾表達式的值為布爾假。
其僞代碼文法為
while 布爾表達式:
代碼塊
- 如果布爾表達式不帶有
、<
、>
、==
=、!
、in
等運算符,僅僅給出數值之類的條件,也是可以的。當not in
後寫入一個非零整數時,視為真值,執行循環體;寫入0時,視為假值,不執行循環體。while
- 也可以寫入
、str
或任何序列,長度非零則視為真值,執行循環體;否則視為假值,不執行循環體。list
while - else 循環
當
while
循環正常執行完的情況下,執行
else
輸出,如果
while
循環中執行了跳出循環的語句,比如
break
,将不執行
else
代碼塊的内容。
其僞代碼文法如下
while 布爾表達式:
代碼塊
else:
代碼塊
for循環
-
循環是疊代循環,在Python中相當于一個通用的序列疊代器,可以周遊任何有序序列,如for
、str
、list
等,也可以周遊任何可疊代對象,如tuple
。dict
- 每次循環,疊代變量被設定為可疊代對象的目前元素,提供給代碼塊使用。
其僞代碼文法如下
for 疊代變量 in 可疊代對象:
代碼塊
for - else 循環
和
while - else
循環類似,當
for
循環正常執行完的情況下,執行
else
輸出,如果
for
循環中執行了跳出循環的語句,比如
break
,将不執行
else
代碼塊的内容,與
while - else
語句一樣。
其僞代碼文法如下
for 疊代變量 in 可疊代對象:
代碼塊
else:
代碼塊
range()函數
其參數清單如下
- 這個BIF(Built-in functions)有三個參數,其中用中括号括起來的兩個表示這兩個參數是可選的。
- step=1 表示第三個參數的預設值是1。
- range 這個BIF的作用是生成一個從start參數的值開始到stop參數的值結束的數字序列,該序列包含start的值但不包含stop的值。
最常用的用法如下
for i in range(2, 9, 1): #左閉右開 步長為1
print(i)
運作結果
2
3
4
5
6
7
8
enumerate()函數
其參數清單如下
-
:一個序列、疊代器或其他支援疊代對象。sequence
-
:下标起始位置。start
- 傳回
(枚舉) 對象enumerate
示例代碼
tem = [3, 2, 1, 7]
print(list(enumerate(tem)))
運作結果
[(0, 3), (1, 2), (2, 1), (3, 7)]
注意:
- enumerate() 函數對可疊代對象進行疊代,傳回
對下标-值
- enumerate() 函數對字典疊代傳回的是
對下标-關鍵字
- enumerate() 與
循環的結合使用。for
用for i, a in enumerate(A) do something with a
不僅傳回了 A 中的元素,還順便給該元素一個索引值 (預設從 0 開始)。此外,用enumerate(A)
還可以确定索引起始值為enumerate(A, j)
。j
break語句
break
語句可以跳出目前所在層的循環。
continue 語句
continue
終止本輪循環并開始下一輪循環。
pass 語句
pass
語句的意思是“不做任何事”,如果你在需要有語句的地方不寫任何語句,那麼解釋器會提示出錯,而
pass
語句就是用來解決這些問題的。
主要用法如下
def a_func():
pass
-
是空語句,不做任何操作,隻起到占位的作用,其作用是為了保持程式結構的完整性。盡管pass
語句不做任何操作,但如果暫時不确定要在一個位置放上什麼樣的代碼,可以先放置一個pass
語句,讓代碼可以正常運作。pass
推導式
清單推導式
清單推導式的主要用法是對
collection
中的值進行疊代,并對每個值進行運算得到新的值作為表達式的值
示例代碼
x = [i for i in range(100) if (i % 2) != 0 and (i % 3) == 0]
print(x)
運作結果
[3, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 87, 93, 99]
元組推導式
- 用法與清單推導式類似,隻是生成的是元組
字典推導式
- 用法與清單推導式類似,隻是有兩個表達式分别為字典的關鍵字和值
集合推導式
- 用法與清單推導式類似,隻是生成的是集合
next()函數
next()
函數接受一個疊代器,并傳回其下一個疊代值。
示例代碼
e = (i for i in range(10))
print(e)
print(next(e))
print(next(e))
for each in e:
print(each, end=' ')
運作結果
<generator object at 0x7f40980ff8e0>
1
2 3 4 5 6 7 8 9