Python3 條件控制
Python條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True或者False)來(lái)決定執(zhí)行的代碼塊。
可以通過(guò)下圖來(lái)簡(jiǎn)單了解條件語(yǔ)句的執(zhí)行過(guò)程:
if 語(yǔ)句
Python中if語(yǔ)句的一般形式如下所示:
if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_block_3
如果 "condition_1" 為 True 將執(zhí)行 "statement_block_1" 塊語(yǔ)句
如果 "condition_1" 為False,將判斷 "condition_2"
如果"condition_2" 為 True 將執(zhí)行 "statement_block_2" 塊語(yǔ)句
如果 "condition_2" 為False,將執(zhí)行"statement_block_3"塊語(yǔ)句
Python 中用 elif 代替了 else if,所以if語(yǔ)句的關(guān)鍵字為:if – elif – else。
注意:
1、每個(gè)條件后面要使用冒號(hào)(:),表示接下來(lái)是滿足條件后要執(zhí)行的語(yǔ)句塊。
2、使用縮進(jìn)來(lái)劃分語(yǔ)句塊,相同縮進(jìn)數(shù)的語(yǔ)句在一起組成一個(gè)語(yǔ)句塊。
3、在Python中沒(méi)有switch – case語(yǔ)句。
實(shí)例
以下是一個(gè)簡(jiǎn)單的 if 實(shí)例:
#!/usr/bin/python3 var1 = 100 if var1: print ("1 - if 表達(dá)式條件為 true") print (var1) var2 = 0 if var2: print ("2 - if 表達(dá)式條件為 true") print (var2) print ("Good bye!")
執(zhí)行以上代碼,輸出結(jié)果為:
1 - if 表達(dá)式條件為 true 100 Good bye!
從結(jié)果可以看到由于變量 var2 為 0,所以對(duì)應(yīng)的 if 內(nèi)的語(yǔ)句沒(méi)有執(zhí)行。
以下實(shí)例演示了狗的年齡計(jì)算判斷:
#!/usr/bin/python3 age = int(input("請(qǐng)輸入你家狗狗的年齡: ")) print("") if age < 0: print("你是在逗我吧!") elif age == 1: print("相當(dāng)于 14 歲的人。") elif age == 2: print("相當(dāng)于 22 歲的人。") elif age > 2: human = 22 + (age -2)*5 print("對(duì)應(yīng)人類年齡: ", human) ### 退出提示 input('點(diǎn)擊 enter 鍵退出')
將以上腳本保存在dog.py文件中,并執(zhí)行該腳本:
$ python3 dog.py 請(qǐng)輸入你家狗狗的年齡: 1 相當(dāng)于 14 歲的人。 點(diǎn)擊 enter 鍵退出
以下為if中常用的操作運(yùn)算符:
操作符 | 描述 |
---|---|
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
== | 等于,比較對(duì)象是否相等 |
!= | 不等于 |
實(shí)例
#!/usr/bin/python3 # 程序演示了 == 操作符 # 使用數(shù)字 print(5 == 6) # 使用變量 x = 5 y = 8 print(x == y)
以上實(shí)例輸出結(jié)果:
False False
high_low.py文件演示了數(shù)字的比較運(yùn)算:
#!/usr/bin/python3 # 該實(shí)例演示了數(shù)字猜謎游戲 number = 7 guess = -1 print("數(shù)字猜謎游戲!") while guess != number: guess = int(input("請(qǐng)輸入你猜的數(shù)字:")) if guess == number: print("恭喜,你猜對(duì)了!") elif guess < number: print("猜的數(shù)字小了...") elif guess > number: print("猜的數(shù)字大了...")
執(zhí)行以上腳本,實(shí)例輸出結(jié)果如下:
$ python3 high_low.py 數(shù)字猜謎游戲! 請(qǐng)輸入你猜的數(shù)字:1 猜的數(shù)字小了... 請(qǐng)輸入你猜的數(shù)字:9 猜的數(shù)字大了... 請(qǐng)輸入你猜的數(shù)字:7 恭喜,你猜對(duì)了!
if 嵌套
在嵌套 if 語(yǔ)句中,可以把 if...elif...else 結(jié)構(gòu)放在另外一個(gè) if...elif...else 結(jié)構(gòu)中。
if 表達(dá)式1: 語(yǔ)句 if 表達(dá)式2: 語(yǔ)句 elif 表達(dá)式3: 語(yǔ)句 else 語(yǔ)句 elif 表達(dá)式4: 語(yǔ)句 else: 語(yǔ)句
實(shí)例
# !/usr/bin/python3 num=int(input("輸入一個(gè)數(shù)字:")) if num%2==0: if num%3==0: print ("你輸入的數(shù)字可以整除 2 和 3") else: print ("你輸入的數(shù)字可以整除 2,但不能整除 3") else: if num%3==0: print ("你輸入的數(shù)字可以整除 3,但不能整除 2") else: print ("你輸入的數(shù)字不能整除 2 和 3")
將以上程序保存到 test_if.py 文件中,執(zhí)行后輸出結(jié)果為:
$ python3 test.py 輸入一個(gè)數(shù)字:6 你輸入的數(shù)字可以整除 2 和 3