咱們都知道流程圖是有多個分支的,程序中也是如此,在Python中是用if語句來判斷程序該走哪一個分支的。它的執行過程以下:html
代碼執行過程以下:python
if
語句的通常形式以下:算法
if condition_1: statement_block_1
condition_1是條件表達式,由各類運算符和數據類型組成,條件表達式的結果能夠是True/False的布爾值,也能夠是非布爾值。Python中的0、None、空列表、空字典等都會被認爲是False,反之都會被認爲是True。服務器
else
語句在條件爲False時執行:函數
if condition_1: statement_block_1 else: statement_block_2
if...else實現了「若是知足條件,那麼xxx,不然xxx」,除此以外,還能夠用elif
實現多個連續判斷,分別執行不一樣的語句:oop
if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3
elif
能夠寫多個。這種寫法的執行順序是從上往下,只要知足了某個if
或elif
的條件,就會在當前分支執行後跳出去,再也不執行後面的判斷,若是每一個if
或elif
的條件都是False,最後就會執行else
。學習
假如想知足if
或elif
的條件後,繼續作判斷,那麼就須要進行if
語句嵌套,讓statement_block_1等代碼塊也包含if
語句:3d
if 表達式1: 語句 if 表達式2: 語句 elif 表達式3: 語句 else: 語句 elif 表達式4: 語句 else: 語句
示例:code
num=int(input("輸入一個數字:")) if num%2==0: if num%3==0: print("你輸入的數字能夠整除 2 和 3") else: print("你輸入的數字能夠整除 2,但不能整除 3") else: if num%3==0: print("你輸入的數字能夠整除 3,但不能整除 2") else: print ("你輸入的數字不能整除 2 和 3")
條件語句是從上往下流水式單次執行,循環語句和條件語句的不一樣點在於,循環是能夠回到起始點,反覆執行屢次的,它的執行過程以下:htm
循環語句的一種形式是while語句:
while 判斷條件(condition): 執行語句(statements)……
它的執行流程圖以下:
示例:
n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("1 到 %d 之和爲: %d" % (n,sum)) # 5050
循環語句的另外一種形式是for語句:
for <variable> in <sequence>: <statements> else: <statements>
它的執行流程圖以下:
示例:
languages = ["C", "C++", "Perl", "Python"] for x in languages: print(x)
break用來跳出整個循環,它的執行流程圖以下:
示例:
for letter in 'Runoob': # 第一個實例 if letter == 'b': break print ('當前字母爲 :', letter) var = 10 # 第二個實例 while var > 0: print ('當期變量值爲 :', var) var = var -1 if var == 5: break print ("Good bye!")
break用來跳出整個循環,continue則是用來跳過當前循環,回到起點,繼續下一次循環。它的執行流程圖以下:
示例:
for letter in 'Runoob': # 第一個實例 if letter == 'o': # 字母爲 o 時跳過輸出 continue print ('當前字母 :', letter) var = 10 # 第二個實例 while var > 0: var = var -1 if var == 5: # 變量爲 5 時跳過輸出 continue print ('當前變量值 :', var) print ("Good bye!")
break和continue在while循環和for循環中的代碼執行過程以下:
循環後面能夠加else語句,while...else
,for...else
。咋看一下else好像並無什麼用,由於while循環條件爲False或for循環結束後,必定會執行接下來的語句。可是若是循環中出現了break,當循環從break跳出來後,是不會執行else語句的。例如:
for n in range(2, 10): for x in range(2, n): if n % x == 0: print(n, '等於', x, '*', n//x) break else: # 循環中沒有找到元素 print(n, ' 是質數')
range()函數能夠生成數字序列。
經過設置while循環條件始終爲True,可讓循環一直進行下去,例如:
while True: pass
pass是佔位語句,不執行任何操做。
無限循環是頗有用的,好比定時任務,每隔5分鐘收1次郵件:
import time while True: receive_email() time.sleep(300)
還有好比客戶端和服務器保持鏈接的心跳機制等。
本文介紹了條件控制和循環語句,也就是寫Python經常使用的if
、while
、for
語句,同時也講解了附帶語句elif
、else
、break
、continue
、pass
的使用。同時也包括了if嵌套、循環else、無限循環的知識點。這一部分的知識很是重要,是代碼的骨架,除了看文章,學代碼最好的方式是實際敲代碼。咱們建了一個「Python互助討論羣」,每週日會有算法刷題打卡活動(照着答案敲一遍也ok),公衆號後臺回覆「加羣」便可加入,有興趣的同窗能夠一塊兒來相互學習交流呀。
參考資料:
https://www.runoob.com/python3/python3-conditional-statements.html