python 中if-else的多種簡潔的寫法


因寫多了判斷語句,看着短短的代碼卻占據來好幾行,於是便搜下if-else簡潔的寫法,結果也是發現新大陸

4種:

第1種:__就是普通寫法

a, b, c = 1, 2, 3
if a>b:

    c = a

else:

    c = b

第二種:一行表達式,為真時放if前

c = a if a>b else b

第三種:二維列表,利用大小判斷的0,1當作索引

c= [b, a][a > b]

 第四種:傳說中的黑客,利用邏輯運算符進行操作,都是最簡單的東西,卻發揮無限能量啊

c = (a>b and [a] or [b])[0]
# 改編版
c = (a>b and a or b)

第四種最有意思了,

利用and 的特點,若and前位置為假則直接判斷為假。

利用 or的特點,若or前位置為真則判斷為真。

# 從前往后找,and找假,or找真
# 前真返后,
print(111 and 222)  # 222
# 前假返前
print(0 and 333)  #0

# 若x真【x】, x假,y真【y】,xy假【y】,只有前真返回前
print(111 or 222) #111
print(0 or 222) #222
print('' or 0) # 0
對於c = (a>b and a or b)而言,
若(a>b and a)
  真:a >b and a,
    則a > b 為真
  假:b,
    則 a> b為假

 補充:對於and的理解

id_ = '12345'
# 判斷長度為5或者為8
if len(id_) == 5 or len(id_) == 8:
    print(id_, '------')
# 相反的表達為非5且非8
if len(id_) != 5 and len(id_) != 8:
    print(id_, '+++++++')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM