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)文章
python中讀入二維csv格式的表格方法詳解(以元組/列表形式表示)
這篇文章主要介紹了python中如何讀入二維csv格式的表格(以元組/列表形式表示),本文通過(guò)兩種方法給大家詳細(xì)介紹,通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04
Django import export實(shí)現(xiàn)數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出方式
這篇文章主要介紹了Django import export實(shí)現(xiàn)數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Python實(shí)現(xiàn)快速排序算法及去重的快速排序的簡(jiǎn)單示例
quick sort快速排序是一種再基礎(chǔ)不過(guò)的排序算法,使用Python代碼寫(xiě)起來(lái)相當(dāng)簡(jiǎn)潔,這里我們就來(lái)看一下Python實(shí)現(xiàn)快速排序算法及去重的快速排序的簡(jiǎn)單示例:2016-06-06
python統(tǒng)計(jì)列表中元素出現(xiàn)次數(shù)的三種方法
這篇文章主要介紹了python統(tǒng)計(jì)列表中元素出現(xiàn)次數(shù)的三種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面跟著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
Python利用Nagios增加微信報(bào)警通知的功能
Nagios是一款開(kāi)源的免費(fèi)網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等,本文給大家介紹Python利用Nagios增加微信報(bào)警通知的功能,需要的朋友參考下2016-02-02
python 迭代器和iter()函數(shù)詳解及實(shí)例
這篇文章主要介紹了python 迭代器和iter()函數(shù)詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-03-03

