今天我們來學習雙向選擇判斷。顧名思義,雙向就是兩種選擇選其一,即if----else
。如果If的條件不成立,則執(zhí)行else
下的語句,否則執(zhí)行if
下面的語句。顯然,它們是互斥
的!下面就讓我們來詳細看看吧!
一、要點先知:
-
if
后面的語句是當判斷條件成立
時,需要執(zhí)行
的操作。 -
else
后面的語句是判斷條件不成立
時,執(zhí)行
的操作。- 在
else
之后使用冒號
,表示后續(xù)縮進的代碼塊在判斷條件不成立的時候會被執(zhí)行。
- 在
縮進生成 else 內(nèi)的代碼塊,這里我們還是
空四格
??讓我們通過下面這兩張圖片再來鞏固一下:
-
第一種情況,程序運行到
if 判斷
時,如果條件為真
,執(zhí)行
if 的代碼塊。完成后,運行 if-else后面
的代碼。 -
第二種情況,程序運行到 if 判斷時,如果條件為
假
,程序就直接跳開
if 判斷的執(zhí)行部分,運行else
的代碼塊。完成后,運行 if-else后面
的代碼。
?如果你已經(jīng)有了一定的編程基礎(比如C,C++,Java等等),相信第二部分的內(nèi)容將對你作用不大,可以自行跳過,直接進入第三部分。
二、基礎講解:
if-else 語句有兩個特性。
-
第一,else 需與 if 搭配使用,它無法獨立出現(xiàn)。
- 必須先有 if,然后才能使用 else,否則程序就會報錯。
-
第二,if 與 else 成互斥關系。
- 互斥關系也就是說,程序不會既執(zhí)行 if 內(nèi)的代碼塊,又執(zhí)行 else 內(nèi)的代碼塊。
else 是把 if 判斷條件無法囊括的情況全部攬到了自己這里
。
三、拓展講解:
在判斷語句中,除了使用布爾表達式
可以作為條件,還有其他的數(shù)據(jù)類型也可以作為判斷條件。
myAge=20
if(myAge):
# 執(zhí)行相應的操作
else:
# 執(zhí)行相應的操作
想想為啥這個if條件是成立的?
- 因為 myAge 被賦值了一個整型 20,所以它被判定為 True,于是程序繼續(xù)執(zhí)行了下一步代碼。
在這里,變量myAge就是“非零非空
”數(shù)據(jù)。
“非零
”這個概念比較好理解,數(shù)字 0
被判斷為False
,其他數(shù)字(包含正數(shù)和負數(shù))都被判斷為True
。
那非空又是啥意思呢?
1. 空值:
定義:空值,又叫 NULL
值,在 Python 中寫作 None
。
(None 是關鍵字
)
- 它代表這個數(shù)值不是整型,不是字符串,不是浮點型,表示沒有。
- 隱喻:空值就像杯子里的空氣,它指代的是杯子里什么都沒有裝。
??注意:它和 0 不一樣,因為 0 的值是 0,而空值的值是None。
2. 非空:
了解了“空值”后,“非空”就更好理解了。
定義:當一個變量里有值,并且這個值不是空值(None),我們就說這個變量“非空”
。
- 非空值可以是整型、字符串、浮點型和布爾數(shù)。
- 同時我們也把所有不是空值的值稱為“非空值”。
隱喻:裝有飲料的杯子。
3 空值和非空的應用:
布爾表達式和非零非空數(shù)據(jù),都可以作為判斷語句的條件。
在判斷語句中,對非零值判斷為真;對數(shù)字0的判斷為假;對 None 的判斷為假。
當我們在登錄郵箱時,需要輸入賬號和密碼。
賬號和密碼就是“非空”數(shù)據(jù),如果輸入正確就登錄成功。
如果忘記輸入密碼,點擊登錄按鈕,程序就會判斷的密碼為“空值”,就會提示你“密碼不正確”。
這就是非空和空值最常見的場景。
4. 注意事項:
現(xiàn)在,我們就學習完了 if-else 語句。 同學們在剛接觸 if-else 判斷時,最容易出現(xiàn)以下兩種 bug:
-
語法錯誤:
else 后面的冒號
常常被遺漏,這是if-else的固定格式,有冒號程序才知道下面是 else 的代碼塊
。 -
縮進問題:
if 和 else 為互斥
關系,else 的代碼塊需要通過縮進形成。為了保持風格統(tǒng)一,每個縮進用4
個空格。
四、刷題練習;
1. 優(yōu)化代碼:
為了更快捷的寫出代碼,今天我們學習了如何使用 if-else 來優(yōu)化程序。
下面我們就來試試吧,使用 if-else 來簡化以下的代碼:
a = -3
if a > 0:
print("這個數(shù)字大于0")
if a <= 0:
print("這個數(shù)字小于等于0")
示例代碼如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-695140.html
a=-3
if a> 0 :
print("這個數(shù)字大于0")
else :
print("這個數(shù)字小于等于0")
2. Jack的行李費:
Jack要出國留學,帶了三個行李,分別是 8.5 公斤,6 公斤,8 公斤。
飛機免費托運限額為 20 公斤,超出的部分每公斤交 20 元的運費,那么Jack需要交運費嗎,如果需要的話交多少運費?
答案示例:
如果需要交運費則輸出“需要交x元”
如果不需要交運費則輸出“不需要補運費”
示例代碼如下:
a=8.5
b=6
c=8
z=a+b+c
if z>20 :
x=(z-20)*20
print(f"需要交{x}元")
else :
print("不需要補運費")
3. 登陸賬號:
登錄CSDN時需要輸入賬戶名(username)和密碼(password)。
現(xiàn)在路飛想要登錄CSDN,賬戶名為"lufei",可是他忘記密碼為"onepiece"。于是沒有輸入密碼就點擊了登錄,請輸出此時系統(tǒng)的提示。
系統(tǒng)的判定是這樣的:
如果賬戶名和密碼都正確,系統(tǒng)會提示“登錄成功”;
否則,系統(tǒng)會提示“請輸入正確的賬號和密碼”。
請編寫代碼模擬不同輸入情況下系統(tǒng)的運行并輸出路飛的系統(tǒng)提示結果。
示例代碼如下:
username="lufei"
password=None
if username=="lufei" and password=="onepiece" :
print("登錄成功")
else :
print("請輸入正確的賬號和密碼")
4. 報考飛行員:
小夜的男同學今年20歲,身高175,他想要報考飛行員,飛行員的要求是年齡在17到27歲之間,身高在169到185之間,小夜的同學滿足報考條件么?文章來源:http://www.zghlxwxcb.cn/news/detail-695140.html
示例代碼如下:
age=20
height=175
if 17<=age<=27 and 169<=height<=185 :
print("符合報考條件")
else :
print("不符合報考條件")
到了這里,關于《人生苦短——我學Python》條件判斷->雙向選擇(if--else)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!