python中if的基礎(chǔ)用法(if?else和if?not)
前言
python 中 if 的用法(if else, if not, elif)
if語(yǔ)句實(shí)際上是:if True: …執(zhí)行后面的語(yǔ)句
python 中的 if 有下面幾種常見(jiàn)用法:
- if … else…
- if …elif…else…
- if not …
- if … not …
1.if … else …
實(shí)際上,還可以用用下面這種方式,使代碼更精簡(jiǎn):
賦值也是可以的:
2. if … elif … else…
elif 是多條件判斷語(yǔ)句,比如:
當(dāng)然,當(dāng)條件很多時(shí),可以有多個(gè)elif,比如上面這個(gè)簡(jiǎn)單的例子可以再增加幾個(gè)條件
3.if not …
i在講 if not 之前,得先弄清楚 not 在python中的意思:
not 是一個(gè)邏輯判斷詞
當(dāng) not 與變量連用的時(shí)候:
所以,在python中,None, False, 空字符串 ‘’ , 0, 空列表[], 空字典{}, 空元組() 都相當(dāng)于False。
要注意的是,雖然”0“是 False,但是 ”[0]" 是True ,因?yàn)橹挥?strong>空列表為False,字典也是如此,另外有空格的字符串 ’ ’ 也不算空字符串。
仔細(xì)的同學(xué)可能看到上面元組(0)并不是True,那是因?yàn)樵?strong>寫(xiě)元組tupple時(shí),如果只有一個(gè)元素,需要在元素后面加上逗號(hào),比如:(0,),指定為元組類(lèi)型,如果不加逗號(hào),python會(huì)把它當(dāng)成整型,整數(shù) 0 為False,所以(0)也為False。
弄清楚not之后,加上 if 就很簡(jiǎn)單了,如果if not 后面的語(yǔ)句是False,則執(zhí)行冒號(hào)后面的語(yǔ)句,否則執(zhí)行else(如果有else的話(huà))。
注意:有時(shí)候if not 的語(yǔ)句很長(zhǎng),又夾帶is、and、or,容易理解錯(cuò)誤,比如:
if not x is a:
應(yīng)該理解為if not (x is a) ,而不是if (not x) is a
if not x or a =b:
應(yīng)該理解為if (not x) or (ab),而不是 if not (x or ab),當(dāng)然這里a==b可以換成其他條件。or 換成and也是一樣,也就是說(shuō),(and、or)和is不一樣,要仔細(xì)甄別。
if not語(yǔ)句是非常常用的語(yǔ)句,尤其在數(shù)據(jù)結(jié)構(gòu)中。由于python語(yǔ)言的簡(jiǎn)潔,if not 和and. or. is.連用可以減少大量的代碼空間。
4. if … not…
這種情況一般 not 與 is 連用,is not 直接按字面理解即可。理解為 if x (is not) None,而不是if x is (not None)。
補(bǔ)充:
在實(shí)際寫(xiě)代碼的時(shí)候,經(jīng)常遇到要判斷None的情況,可能會(huì)遇見(jiàn)下面這些寫(xiě)法:
if x is None:…#最好使用這種寫(xiě)法
if not x:…
if not x is None: …
而在判斷None的過(guò)程,常常伴隨著 [] 的判斷,這時(shí)我們使用if not x是有問(wèn)題的:
因?yàn)樯厦嬷v過(guò),not是邏輯判斷,而列表、空字典等的邏輯和None是一樣的,都是False,if not 是沒(méi)辦法區(qū)分的,輸出的都是True。所以要確定變量=[]時(shí)對(duì)if not 的判斷沒(méi)有影響,否則會(huì)報(bào)錯(cuò)。
使用 if not x is None也是有問(wèn)題的,這種寫(xiě)法容易誤解為if (not x) is None,而實(shí)際上應(yīng)該理解為 not (a is None)
a is None 返回False ,所以not(False)返回True,而實(shí)際上[] 并不是None,應(yīng)該返回False
所以最好直接使用if x is None,簡(jiǎn)介明了。
a is b比較的a 和 b的id,只有a,b的id相同才會(huì)輸出True:
上面if … not …中的 is not其實(shí)是一樣的道理
補(bǔ)充:if條件語(yǔ)句綜合練習(xí)
判斷閏年:
用戶(hù)輸入年份year, 判斷是否為閏年?
我們知道:能被4整除但不能被100整除的 或者 能被400整除 那么就是閏年
year = int(input('輸入年份:')) if year %4 ==0 and year %100 != 0: print('%d是閏年' %year) elif year %400 ==0: print('%d是閏年'%year) else: print('%d不是閏年' %year)
結(jié)果:
總結(jié)
到此這篇關(guān)于python中if基礎(chǔ)用法的文章就介紹到這了,更多相關(guān)python if用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于tkinter中ttk控件的width-height設(shè)置方式
這篇文章主要介紹了基于tkinter中ttk控件的width-height設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05一篇文章弄懂Python中的可迭代對(duì)象、迭代器和生成器
這篇文章主要給大家介紹了關(guān)于Python中可迭代對(duì)象、迭代器和生成器的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08python自動(dòng)化神器pyautogui使用步驟
這篇文章主要給大家介紹了關(guān)于python自動(dòng)化神器pyautogui使用步驟的相關(guān)資料,在Python當(dāng)中不僅代碼簡(jiǎn)單,而且有著非常豐富的模塊,pyautogui就可以稱(chēng)之為自動(dòng)化操作的"神器",需要的朋友可以參考下2023-07-07利用Celery實(shí)現(xiàn)Django博客PV統(tǒng)計(jì)功能詳解
給網(wǎng)站增加pv、uv統(tǒng)計(jì),可以是件很簡(jiǎn)單的事,也可以是件很復(fù)雜的事。下面這篇文章主要給大家介紹了利用Celery實(shí)現(xiàn)Django博客PV統(tǒng)計(jì)功能的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-05-05已安裝tensorflow-gpu,但keras無(wú)法使用GPU加速的解決
今天小編就為大家分享一篇已安裝tensorflow-gpu,但keras無(wú)法使用GPU加速的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02Python測(cè)試框架pytest核心庫(kù)pluggy詳解
這篇文章主要為大家介紹了Python測(cè)試框架pytest核心庫(kù)pluggy使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08python3中類(lèi)的繼承以及self和super的區(qū)別詳解
今天小編就為大家分享一篇python3中類(lèi)的繼承以及self和super的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06python 基于Appium控制多設(shè)備并行執(zhí)行
這篇文章主要介紹了python 如何基于Appium控制多設(shè)備并行執(zhí)行,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下2021-03-03