1. 程式人生 > >python基礎(二) —— 流程控制語句

python基礎(二) —— 流程控制語句

當前 score 繼續 ctrl 不執行 add 索引 沒有 lse

編程語言中的流程控制語句分為以下幾類:

  • 順序語句
  • 分支語句
  • 循環語句

其中順序語句不需要單獨的關鍵字來控制,就是按照先後順序一行一行的執行,不需要特殊的說明。

下面主要是 分支語句 和 循環語句的說明:

Python中的真假判斷標準:

Python中只有判斷語句的最終結果:非0,非空,非None,結果就為真

1、分支語句

條件分支語句是通過一條或多條語句(判斷條件)的執行結果(True/False)來決定執行哪個分支的代碼塊。

Python中提供的分支語句為:if..else語句,沒有提供switch..case語句。

if..else語句有以下幾種形式:

1.1 單分支:

if 判斷條件:

代碼塊

如果單分支語句的代碼塊只有一條語句,可以把if語句和代碼寫在同一行:

if 判斷條件: 一句代碼

示例:

a = 1
b = 5
c = 10
if a <= b <= c:
print(‘1 <= 5 <= 10‘)

輸出:

1 <= 5 <= 10

代碼塊中只有一條語句,可以改寫為:

a = 1
b = 5
c = 10
if a <= b <= c: print(‘1 <= 5 <= 10‘)

輸出:

1 <= 5 <= 10

1.2 雙分支:

if 判斷條件:

代碼塊

else:

代碼塊

示例:

a = 1
b = 5
if a >= b :
print(‘a大於b‘)
else:
print(‘a小於b‘)

輸出結果:

a小於b

1.3 多分支:

if 判斷條件1:

代碼塊1

elif 判斷條件2:

代碼塊2

...

elif 判斷條件n:

代碼塊n

else:

默認代碼塊

示例:根據學生分數打印字母等級

score = 88.8

level = int(score % 10)

if level >= 10:

print(‘Level A+‘)

elif level == 9:

print(‘Level A‘)

elif level == 8:

print(‘Level B‘)

elif level == 7:

print(‘Level C‘)

elif level == 6:

print(‘Level D‘)

else:

print(‘Level E‘)

輸出結果:Level B

註意

當上面的“判斷條件”中的表達式可以是任意的表達式,也可以是任意類型的數據對象實例。只要判斷條件的最終返回結果的值測試為True時,就表示該條件成立,相應的代碼塊就會被執行;否則表示條件不成立,需要判斷下一個條件

2、循環語句

當我們需要多次執行一個代碼語句或代碼塊時,可以使用循環語句。

Python中提供的循環語句有2種:while循環(通用)和for循環(已知循環次數使用)。

需要註意的是Python中沒有do..while循環

此外,還有幾個用於控制循環執行過程的循環控制語句:break、continue和pass。

2.1. while循環

基本形式

2.1.1 while循環語句基本語句

基本形式如下:

while 判斷條件:

代碼塊

當給定的判斷條件的返回值的真值測試結果為True時執行循環體的代碼,否則退出循環體

示例:循環打印數字0-9

count = 0

while count <= 9:

print(count, end=‘ ‘)

count += 1

輸出結果:0 1 2 3 4 5 6 7 8 9

2.1.2 while死循環

當while的判斷條件一直為True時,while循環體中代碼就會永遠循環下去

while True:

print("這是一個死循環")

輸出結果:

這是一個死循環

這是一個死循環

這是一個死循環

...

此時可以通過Ctrl + C終止運行。

2.1.3 while..else

語句形式:

while 判斷條件:

代碼塊

else:

代碼塊

else中的代碼塊會在while循環正常執行完的情況下執行,如果while循環被break中斷,else中的代碼塊不會執行。

示例1:while循環正常執行結束的情況(else中的語句會被執行)

count = 0

while count <=9:

print(count, end=‘ ‘)

count += 1

else:

print(‘end‘)

執行結果為:0 1 2 3 4 5 6 7 8 9 end

示例2:while循環被中斷的情況(else中的語句不會被執行)

count = 0

while count <=9:

print(count, end=‘ ‘)

if count == 5:

break

count += 1

else:

print(‘end‘)

輸出結果:0 1 2 3 4 5

2.2. for循環

for循環通常用於遍歷序列(listtuplerangestr)、集合(set)和映射對象(dict)

基本形式

2.2.1. for循環的基本格式:

for 臨時變量 in 可叠代對象:

代碼塊

示例:遍歷打印一個list中的元素

names = [‘Tom‘, ‘Peter‘, ‘Jerry‘, ‘Jack‘]

for name in names:

print(name)

對於序列,也通過索引進行叠代:

names = [‘Tom‘, ‘Peter‘, ‘Jerry‘, ‘Jack‘]

for i in range(len(names)):

print(names[i])

執行結果:

Tom

Peter

Jerry

Jack

2.2.2 for...else

與while..else基本一致,同樣else語句只有在for循環正常執行結束時才會執行,如果for循環被break跳出,則不執行else語句。

2.3. 循環控制語句

循環控制語句可以更改循環體中程序的執行過程,如中斷循環、跳過本次循環。

循環控制語句

說明

break

跳出當前層循環,不能一次跳出多層

contine

跳過本次循環,繼續執行本層的下一次循環

pass

pass語句是個空語句,只是為了保持程序結構的完整性,相當於占位符,沒有什麽特殊含義。

pass語句並不是只能用於循環語句中,也可以用於分支語句中。

示例1:遍歷0-9範圍內的所有數字,並通過循環控制語句打印出其中的奇數

for i in range(10):

if i % 2 == 0:

continue

print(i, end=‘ ‘)

輸出結果:1 3 5 7 9

示例2:通過循環控制語句打印一個列表中的前3個元素

names = [‘Tom‘, ‘Peter‘, ‘Jerry‘, ‘Jack‘, ‘Lilly‘]

for i in range(len(names)):

if i >= 3:

break

print(names[i])

輸出結果:

Tom

Peter

Jerry

2.4. 循環嵌套

循環嵌套是指:在一個循環體裏面嵌入另一循環。

示例1:通過while循環打印99乘法表

j = 1

while j <= 9:

i = 1

while i <= j:

print(‘%d*%d=%d‘ % (i, j, i*j), end=‘\t‘)

i += 1

print()

j += 1

示例2:通過for循環打印99乘法表

for j in range(1, 10):

for i in range(1, j+1):

print(‘%d*%d=%d‘ % (i, j, i*j), end=‘\t‘)

i += 1

print()

j += 1

註意:python中沒有類似C中的自增和自減運算,因為數值類型的對象在python中屬於不可變類型,不能夠原位改變其值

python基礎(二) —— 流程控制語句