Python系列:三、流程控制迴圈語句--技術流ken
Python條件語句
Python條件語句是通過一條或多條語句的執行結果(True或者False)來決定執行的程式碼塊。
可以通過下圖來簡單瞭解條件語句的執行過程:
Python程式語言指定任何非0和非空(null)值為true,0 或者 null為false。
Python 程式設計中 if 語句用於控制程式的執行,基本形式為:
if 判斷條件:
執行語句…… else: 執行語句……
其中"判斷條件"成立時(非零),則執行後面的語句,而執行內容可以多行,以縮排來區分表示同一範圍。
else 為可選語句,當需要在條件不成立時執行內容則可以執行相關語句
if條件語句演示
一、簡單例子
name = 'ken' if name == 'python': # 判斷變數否為'python' print ('welcome man') # 輸出歡迎資訊 else: print (name) # 條件不成立時輸出變數名稱
輸出結果為:
ken
注意:
- 1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。
- 2、使用縮排來劃分語句塊,相同縮排數的語句在一起組成一個語句塊。
- 3、在Python中沒有switch – case語句
二、以下例子演示了elif的用法
age = int(input("請輸入你家狗狗的年齡: ")) print("") if age < 0: print("你是在逗我吧!") elif age == 1: print("相當於 14 歲的人。") elif age == 2: print("相當於 22 歲的人。") elif age > 2: human = 22 + (age -2)*5 print("對應人類年齡: ", human) ### 退出提示 input("點選 enter 鍵退出")
執行:
請輸入你家狗狗的年齡: 22 對應人類年齡: 122 點選 enter 鍵退出
三、以下為if中常用的操作運算子:
操作符 | 描述 |
---|---|
< |
小於 |
<= |
小於或等於 |
> |
大於 |
>= |
大於或等於 |
== |
等於,比較物件是否相等 |
!= |
不等於 |
猜數字遊戲舉例:
number = 7 guess = 10 print("數字猜謎遊戲!") while guess != number: guess = int(input("請輸入你猜的數字:")) if guess == number: print("恭喜,你猜對了!") elif guess < number: print("猜的數字小了...") elif guess > number: print("猜的數字大了...")
輸出結果為:
數字猜謎遊戲! 請輸入你猜的數字:6 猜的數字小了... 請輸入你猜的數字:7 恭喜,你猜對了!
四、if 巢狀
在巢狀 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。
if 表示式1: 語句 if 表示式2: 語句 elif 表示式3: 語句 else: 語句 elif 表示式4: 語句 else: 語句
例項
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")
輸出結果
輸入一個數字:4 你輸入的數字可以整除 2,但不能整除 3
Python3 迴圈語句
Python中的迴圈語句有 for 和 while。
Python迴圈語句的控制結構圖如下所示:
while 迴圈
Python中while語句的一般形式:
while 判斷條件:
語句
同樣需要注意冒號和縮排。另外,在Python中沒有do..while迴圈。
以下例項使用了 while 來計算 1 到 100 的總和:
num1=1 num2=0 while num1<=100: num2+=num1 num1+=1 print(num2)
執行結果如下:
5050
無限迴圈
我們可以通過設定條件表示式永遠不為 false 來實現無限迴圈,例項如下:
while True: num=input('pls enter a num:') print(num) print('good bye')
執行結果如下:
pls enter a num:3 3 pls enter a num:0 0
while 迴圈使用 else 語句
在 while … else 在條件語句為 false 時執行 else 的語句塊:
num=int(input('enter a num:')) while num<10: print('the num is less then 10') else: print('the num is more then or equal 10')
執行結果如下:
enter a num:10 the num is more then 10
for 語句
Python for迴圈可以遍歷任何序列的專案,如一個列表或者一個字串。
for迴圈的一般格式如下:
for <variable> in <sequence>: <statements> else: <statements>Python 迴圈例項:
num=[1,2,3,4,5] for i in num: print(i)
執行結果如下
1 2 3 4 5
range()函式
如果你需要遍歷數字序列,可以使用內建range()函式。它會生成數列,例如:
for i in range(5): print(i)
執行結果如下
0 1 2 3 4
也可以使用range指定區間的值:
for i in range(5,10): print(i)
執行結果如下
5 6 7 8 9
也可以使range以指定數字開始並指定不同的增量(甚至可以是負數,有時這也叫做'步長'):
for i in range(5,10,2): print(i)
執行結果如下
5 7 9
break和continue語句及迴圈中的else子句
break語句
break 語句可以跳出 for 和 while 的迴圈體。如果你從 for 或 while 迴圈中終止,任何對應的迴圈 else 塊將不執行。 例項如下:
for letter in 'kenclass': # 第一個例項 if letter == 'c': break print ('當前字母為 :', letter) var = 10 # 第二個例項 while var > 0: print ('當期變數值為 :', var) var = var -1 if var == 5: break print ("Good bye!")
執行結果如下
當前字母為 : k 當前字母為 : e 當前字母為 : n 當期變數值為 : 10 當期變數值為 : 9 當期變數值為 : 8 當期變數值為 : 7 當期變數值為 : 6 Good bye!
continue語句
被用來告訴Python跳過當前迴圈塊中的剩餘語句,然後繼續進行下一輪迴圈
for letter in 'kenclass': # 第一個例項 if letter == 'c': # 字母為 c 時跳過輸出 continue print ('當前字母 :', letter) var = 10 # 第二個例項 while var > 0: var = var -1 if var == 5: # 變數為 5 時跳過輸出 continue print ('當前變數值 :', var) print ("Good bye!")
執行結果如下
當前字母 : k 當前字母 : e 當前字母 : n 當前字母 : l 當前字母 : a 當前字母 : s 當前字母 : s 當前變數值 : 9 當前變數值 : 8 當前變數值 : 7 當前變數值 : 6 當前變數值 : 4 當前變數值 : 3 當前變數值 : 2 當前變數值 : 1 當前變數值 : 0 Good bye!
迴圈中的else子句
迴圈語句可以有 else 子句,它在窮盡列表(以for迴圈)或條件變為 false (以while迴圈)導致迴圈終止時被執行,但迴圈被break終止時不執行。
如下例項用於查詢質數的迴圈例子:
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, ' 是質數')
執行結果如下
2 是質數 3 是質數 4 等於 2 * 2 5 是質數 6 等於 2 * 3 7 是質數 8 等於 2 * 4 9 等於 3 * 3
pass 語句
Python pass是空語句,是為了保持程式結構的完整性。
pass 不做任何事情,一般用做佔位語句,如下例項
for letter in 'kenclass': if letter == 'c': pass print ('執行 pass 塊') print ('當前字母 :', letter) print ("Good bye!")
執行結果如下
當前字母 : k
當前字母 : e
當前字母 : n
執行 pass 塊
當前字母 : c
當前字母 : l
當前字母 : a
當前字母 : s
當前字母 : s
Good bye!