在編程的世界中,流程控制是程序員運行的基礎,流程控制決定了程序按照什麼樣的方式去執行,本節給大家介紹 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 = 0
print('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 + 1
print("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 時中斷
break
print ('當前字母 :', letter)
continue 語句用來跳過當前循環的剩餘語句,然後重新判斷循環條件,開啓下一輪循環。continue只能出現在while和for循環中
continue 示例:
for letter in 'ityouknow': # 第一個實例
if letter == 'n': # 字母爲 n 時跳過輸出
continue
print ('當前字母 :', 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