一、條件控制
Python條件語句是通過一條或多條語句的執(zhí)行結(jié)果(True或者False)來決定執(zhí)行的代碼塊,而計算機很多自動化任務(wù),也是根據(jù)條件判斷來實現(xiàn)的。
我們可以通過下圖,來了解一下條件語句執(zhí)行的過程
和 Java 差不多,不同點:
1、每個條件后面要使用冒號(:),表示接下來是滿足條件后要執(zhí)行的語句塊;
2、使用縮進來劃分語句塊,相同縮進數(shù)的語句在一起組成一個語句塊;
3、elif 代替了 else if;
4、在 Python 中沒有 switch – case 語句。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
age = 18 if age < = 2 : print ( '嬰兒' ) elif age < = 5 : # elif 代替了 else if print ( '幼兒' ) elif age < = 12 : print ( '兒童' ) elif age < = 18 : print ( '少年' ) elif age < = 40 : print ( '青年' ) elif age < = 59 : print ( '中年' ) else : print ( '老年' ) |
二、循環(huán)
Python 中的循環(huán)語句有 for 和 while。
for
1
2
3
|
names = [ 'n1' , 'n2' , 'n3' , 'n4' ] for n in names: print (n) |
while
1
2
3
4
5
6
7
|
m = 5 n = 0 while n < = 5 : # 符合條件執(zhí)行下面語句塊 n + = 1 print ( '循環(huán)次數(shù):' + str (n)) else : # 可以有 else print ( '不符合條件' ) |
注意:Python 沒有 do..while 循環(huán)
break 和 continue 語句
和 Java 一樣,break 跳出循環(huán)體;continue 中斷此次循環(huán),繼續(xù)進行下一輪循環(huán)。
pass 語句
pass 是空語句,不做任何事情,是為了保持程序結(jié)構(gòu)的完整性。
1
2
3
|
names = [ 'n1' , 'n2' , 'n3' , 'n4' ] for m in names: pass # 這里什么都不寫,會報錯 |
多重循環(huán)
在循環(huán)內(nèi)部,還可以嵌套循環(huán),我們來看一個例子:
1
2
3
|
for x in [ 'A' , 'B' , 'C' ]: for y in [ '1' , '2' , '3' ]: print x + y |
x 每循環(huán)一次,y 就會循環(huán) 3 次,這樣,我們可以打印出一個全排列:
1
2
3
4
5
6
7
8
9
|
A1 A2 A3 B1 B2 B3 C1 C2 C3 |
三、函數(shù)
定義
函數(shù)定義使用 def 關(guān)鍵字,函數(shù)命名全部小寫,可由下劃線連接各個單詞。
一般格式如下:
1
2
|
def 函數(shù)名(參數(shù)列表): 函數(shù)體 |
實例
1
2
3
|
必傳參數(shù)
必傳參數(shù)必須以正確的順序傳入?yún)?shù)。
1
2
3
|
def hello1(x, y): print (x, y) hello1( '必傳' , '參數(shù)' ) |
默認參數(shù)
給參數(shù)添加默認值,默認參數(shù)可不傳。
1
2
3
4
5
6
|
def hello2(x, y, z = 8 , name = 'wxl' ): print (x, y, z, name) hello2( 666 , 999 ) # 相當于hello2(666, 999,8,'wxl') hello2( 666 , 999 , 888 ) # 打印:666 999 888 wxl hello2( 666 , 999 , 888 , 'WuXiaolong' ) # 打印:666 999 888 WuXiaolong hello2( 666 , 999 , name = 'WuXiaodlong' ) # 不按順序提供默認參數(shù),打印:666 999 8 WuXiaodlong |
注意:
1、必傳參數(shù)必須在前,默認參數(shù)在后,否則 Python 解釋器會報錯;
2、不按順序提供默認參數(shù),需要把參數(shù)名寫上。
可變參數(shù)
可變參數(shù)顧名思義參數(shù)個數(shù)不定,在參數(shù)前面加了一個 * 號,可變參數(shù)接收到的是一個 tuple,這樣傳入的參數(shù)個數(shù)是可變的,可以是 1 個、2 個、任意個,還可以是 0 個。
1
2
3
4
5
6
7
8
9
|
def hello3( * y): print (y) hello3( 1 , '2' , 3.0 , True ) # 打印:(1, '2', 3.0, True) hello3( 'wxl' ) # 打印:('wxl',) hello3() # 打印:() def hello4(x, * y): print (x, y) hello4( 1 , '2' , 3.0 , True ) # 打印:1 ('2', 3.0, True) hello4( 'wxl' ) # 打印:wxl () |
關(guān)鍵字參數(shù)
與可變參數(shù)類似,關(guān)鍵字參數(shù)個數(shù)不定,在參數(shù)前面加了一個 ** 號,關(guān)鍵字參數(shù)接收到的是一個 dict。
1
2
3
4
|
def hello5(x, * * y): print (x, y) hello5( 1024 ) # 打印:1024 {} hello5( 1024 , name = 'WuXiaolong' , code = 520 ) # 打印:1024 {'name': 'WuXiaolong', 'code': 520} |
返回值
使用 return 語句,可以將函數(shù)作為一個值賦值給指定變量。
1
2
3
4
5
6
7
8
|
def hello6(x): return x print (hello6( 666 )) # 打印:666 def hello7(x, y): return x, y m = hello7( 666 , 999 ) type (m) print ( type (m), m) # 打印:<class 'tuple'> (666, 999) |
全局變量
在函數(shù)里給一個變量賦值的時候,Python 自動認為這個變量是這個作用域的本地變量,并屏蔽作用域外的同名的變量,可以聲明 global,表示在向一個全局變量賦值。
1
2
3
4
5
6
7
|
# 全局變量 z = 1024 def hello8(): global z z = 520 print ( 'z=' + str (z)) # z=520 hello8() |
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務(wù)器之家的支持。
原文鏈接:http://wuxiaolong.me/2017/11/13/IfForWhileDef/