在編程的世界中,流程控制是程序員運行的基礎,流程控制決定了程序按照什么樣的方式去執行,本節給大家介紹 Python 流程控制相關語法。
if 語句
if 語句表示如何發生什么樣的條件,執行什么樣的邏輯。
Python程序語言指定任何非0和非空(null)值為true,0 或者 null為false。
1)單一分支
if?條件表達式:【代碼塊】
【后續代碼】
執行流程:如果條件表達式為真,則執行【代碼塊】。否則不執行,直接執行if語句后面的【后續代碼】
注意:【代碼塊】必須縮進單if語句可以嵌套
2) 雙向分支
if?條件表達式:【語句塊A】
else:【語句塊B】
【后續代碼】
執行流程:如果條件表達式為真,執行【語句塊A】然后執行【后續代碼】,否則執行【語句塊B】,然后再執行【后續代碼】,二選一,不可能既執行A有執行B
注意:【語句塊A】和【語句塊B】必須縮進if-else可以嵌套
3)多向條件分支
if?條件1:【代碼段1】
elif?條件2:【代碼段2】
............
elif?條件n:
【代碼段n】
else:【else語句塊】
【后續代碼】
執行流程:多選一,如果滿足條件1,執行【代碼段1】,然后跳出if-elif語句,執行【后續代碼】,否則判斷是否滿足條件2,如果滿足執行【代碼段2】,然后跳出if-elif語句,執行【后續代碼】...。如果所有條件都不滿足,執行【else語句塊】,然后再執行【后續代碼】。
注意:else是可選的,可以寫也可以不寫。
示例:
x = int(input("Please enter an integer: "))x = -5
if x < 0:x = 0print('Negative changed to zero')
elif x == 0:print('Zero')
elif x == 1:print('Single')
else:print('More')
可能會有零到多個 elif 部分,else 是可選的。關鍵字 ‘elif’ 是 ’else if’ 的縮寫,這個可以有效地避免過深的縮進。if … elif … elif … 序列用于替代其它語言中的 switch 或 case 語句。
for 循環
Python for 循環可以遍歷任何序列的項目,如一個 列表 或者一個 字符串。
語法:
for 循環的語法格式如下:
'''
for 后跟變量名,in 后跟序列,注意加冒號
for 循環每次從序列中取一個值放到變量中
此處的序列主要指 列表 元組 字符串 文件
'''
for iterating_var in sequence:
statements(s)
示例如下:
for letter in 'Python': # 第一個實例print('當前字母 :', letter)fruits = ['banana', 'apple', 'mango']for fruit in fruits: # 第二個實例print('當前字母 :', fruit)print("Good bye!")
也可以通過索引地址來遍歷內容
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):print('當前水果 :', fruits[index])print("Good bye!")
循環概念
廣義:一個周期現象或者重復出現的情況,這種狀態被稱為循環
狹義:在滿足條件的情況下,反復執行某一段代碼,在編程語言中出現的這種現象被稱為循環。被反復執行的這段代碼被稱為循環體
當反復執行某段代碼時,需要在合適的時機將循環停止下來,否則會產生死循環
Python中提供的循環語句:while語句,for-in語句
?
while的使用
1 while語法
while 表達式:循環體
工作原理:遇到while語句時,首先計算表達式的值,如果表達式的值為假,則跳過整個while語句,繼續執行下面的代碼;如果表達式的值為真,則執行循環體
2 while-else
while 表達式: 循環體 else:【else語句塊】
說明:當while語句執行完成之后,執行【else語句塊】,如果用break跳出循環則不執行else
3 死循環
在循環語句中,表達式永遠為真的循環
while?True: #循環體while?1: #循環體
4 while語句的嵌套
while 條件1:? ? #外層循環【語句塊A】while 條件2:? #內存循環 【語句B】
執行流程:首先判斷外層循環的條件1,如果為真,則執行循環體中的【語句塊A】,執行內層循環,判斷條件2是否成立,如果成立,執行內層循環的【語句塊B】,執行完內層循環后,重新判斷外層循環條件....
-
特點:外層循環走一步,內層循環執行一遍
-
外層循環和內層循環的循環變量必須不同
語法:
while 判斷條件:
執行語句……
示例:
count = 0
while (count < 9):print( 'The count is:', count)count = count + 1print("Good bye!")
?
也可以在 while 循環中添加判斷邏輯
count = 0
while count < 5:print(count, " is less than 6")count = count + 1
else:print(count, " is not less than 6")
?
range() 函數
如果你需要一個數值序列,內置函數 range() 會很方便,它生成一個等差級數鏈表:
語法:
range (start, end, scan):
參數含義:
-
start:計數從 start 開始。默認是從 0 開始。例如 range(5) 等價于 range(0, 5);
-
end:計數到 end 結束,但不包括 end.例如:range(0, 5) 是[0, 1, 2, 3, 4]沒有 5
-
scan:每次跳躍的間距,默認為1。例如:range(0, 5) 等價于 range(0, 5, 1)
示例:
for i in range(6):print(i)
print(range(6),'finish')for i in range(6,10):print(i)
print(range(6,10),'finish')for i in range(6,12,2):print(i)
print(range(6,12,2),'finish')
需要迭代鏈表索引的話,如下所示結合使 用 range() 和 len():
a = ['i', 'love', 'coding', 'and', 'free']
for i in range(len(a)):print(i, a[i])
break 用法和continue、pass
break用于結束當前循環。只對當前這一重循環起作用。break只能出現在循環中。
break示例:
for letter in 'ityouknow': # 第一個實例if letter == 'n': # 字母為 n 時中斷breakprint ('當前字母 :', letter)
?
continue 語句用來跳過當前循環的剩余語句,然后重新判斷循環條件,開啟下一輪循環。continue只能出現在while和for循環中
continue??示例:
for letter in 'ityouknow': # 第一個實例
if letter == 'n': # 字母為 n 時跳過輸出continueprint ('當前字母 :', letter)
?
pass?示例:
while True:
pass # Busy-wait for keyboard interrupt (Ctrl+C)
# 這通常用于創建最小結構的類:
class MyEmptyClass:
pass
總結
本節給大家介紹了 Python 語法中的流程控制相關語法,方便后期在代碼邏輯中進行條件控制,留一個小問題,試著去用循環打印一下九九乘法表,答案下期揭曉。
參考:
http://www.pythondoc.com/pythontutorial3
https://www.runoob.com/python3/python3-tutorial.html