Python 并列和或者條件的使用說明
對Python 同時(shí)符合兩個(gè)的條件的語句,用and連接,不能用&&(會報(bào)錯(cuò));
也可以用or表示或者。
代碼如下:
print '開始測試'
a = 12
b = 13
c = 1
a_s = '12'
b_s = '13'
if a < b and a_s < b_s:
print 'True'
else:
print '不成立'
if a < b or a_s > b_s:
print 'True'
else:
print '不成立'
輸出:
# 開始測試 # True # True
判斷一個(gè) list 是否為空
傳統(tǒng)的方式:
if len(mylist): # Do something with my list else: # The list is empty
由于一個(gè)空 list 本身等同于 False,所以可以直接:
if mylist: # Do something with my list else: # The list is empty
補(bǔ)充:python if語句多個(gè)條件-python if條件判斷語句
if的基本格式
if語句用來做判斷,并選擇要執(zhí)行的語句分支。
基本格式如下:
if CONDITION1: code_block(1) elif CONDITION2: code_block(2) elif CONDITION3: ... ... else: code_block_else
其中elif是可選的,可以有任意多個(gè),else是可選的,表示全都不滿足條件時(shí)該執(zhí)行的分支。
例如:
a = 4
if a > 3:
print("hello world")
條件表達(dá)式Condition部分以運(yùn)算結(jié)果的True、False為if的分支執(zhí)行依據(jù)。在Python中所有數(shù)據(jù)對象要么是True,要么是False,所以任何一個(gè)數(shù)據(jù)、表達(dá)式都可以作為if的Condition。
例如:
if 1: ... if a > b: ... if 'a': ... if []: ... if [[]]: ... if a and b: ...
至于如何判斷True、False,參見布爾值和邏輯運(yùn)算。
switch/case的替代方案
在python中并沒有switch和case的分支選擇語句,但是使用if或dict也能輕松實(shí)現(xiàn)。
例如,使用dict實(shí)現(xiàn)等值的分支選擇:
D = {
"apple": 8.0,
"pear": 3.5,
"orange": 2.5,
"banana": 2.5
}
fruit = "banana"
print(D[fruit])
上面沒有提供default情況時(shí)的分支,但使用get()可以設(shè)置dict中找不到key時(shí)默認(rèn)返回的值。
例如:
print(D.get("greens","no this fruit"))
還可以通過in的成員測試來設(shè)置分支:
if fruit in D:
print(D[fruit])
else:
print("no this fruit")
dict只能做等值比較的分支選擇,要提供非等值的分支比較,只能用if語句。
例如:
score = 77
if score >= 90:
print("優(yōu)秀")
elif 70 <= score < 90:
print("良好")
elif 60 <= score < 70:
print("及格")
else:
print("不及格")
使用if的好處是通俗易懂,使用dict的好處是將數(shù)據(jù)存儲到數(shù)據(jù)結(jié)構(gòu)中,而存儲到數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)可以是很復(fù)雜的。比如,將函數(shù)作為dict的value。
if/else三元表達(dá)式
即所謂的三目運(yùn)算,只不過python中不支持x ? y : z的方式,而是使用if的另一種表達(dá)式語法。
對于if x: xxx; else yyy這樣的兩分支語句,可以使用更精簡的表達(dá)式方式來描述:
xxx if x else yyy
雖然看上去和原始的沒什么區(qū)別,但很多時(shí)候要方便的多。
例如賦值:
if x: a = y else: a = z
等價(jià)的三元if寫法:
a = y if x else z
注意,上面"="表示這整行是一個(gè)賦值語句,右邊的是評估對象,評估之后賦值給a,也就是等價(jià)于a = (y if x else z),而不是等價(jià)于(a = y) if x else z。
else不能缺少,否則不是三元運(yùn)算。另外,if的分支代碼體y和z都必須只能是單條語句,不能是多語句。也就是說,不能轉(zhuǎn)換下面的代碼格式為三元表達(dá)式。
if x: statement1 statement2 else: statement3 statement4
實(shí)際上,三元運(yùn)算也能使用and / or來實(shí)現(xiàn),還能使用序列 + bool()來實(shí)現(xiàn)。
例如:
a = ((x and y) or z)
一般比較少用and/or來實(shí)現(xiàn)分支,因?yàn)榭勺x性不好,而且并不總是能和if等價(jià)。但有一種情況使用and/or非常方便:從多個(gè)值中選擇一個(gè)真值。
例如:
a = x or y or z or None
下面是使用序列 + bool()的方式實(shí)現(xiàn)的三元運(yùn)算操作,思路是bool(CONDITION)作為序列的索引。
a = [y, z][bool(x)]
還是那句話,python中基本總是首選簡單的、通俗易懂的方式。所以,用if吧。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Python結(jié)合Deepseek編寫一個(gè)PDF轉(zhuǎn)Word軟件
如今,在線工具的普及讓PDF轉(zhuǎn)Word成為了一個(gè)常見需求,本文將利用Python開發(fā)一款本地化的PDF批量轉(zhuǎn)換為Word的軟件,有需要的小伙伴可以參考下2025-02-02
python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實(shí)例
今天小編就為大家分享一篇python 基本數(shù)據(jù)類型占用內(nèi)存空間大小的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06
python 動態(tài)調(diào)用函數(shù)實(shí)例解析
這篇文章主要介紹了python 動態(tài)調(diào)用函數(shù)實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10
Python使用sys.path查看當(dāng)前的模塊搜索路徑
sys.path 是 Python 中的一個(gè)列表,它用于存儲模塊搜索路徑,當(dāng)你使用 import 語句導(dǎo)入一個(gè)模塊時(shí),Python 會按照 sys.path 列表中的路徑順序來查找這個(gè)模塊,本文給大家介紹了Python使用sys.path查看當(dāng)前的模塊搜索路徑,需要的朋友可以參考下2025-02-02
pyinstaller生成的exe文件啟動時(shí)間漫長的原因
本文主要介紹了pyinstaller生成的exe文件啟動時(shí)間漫長的原因,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01

