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

2021-10-07 08:52:14 字數 1591 閱讀 7760

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

4種:第1種:__就是普通寫法

a, b, c = 1, 2, 3

if a>b:

c = a

else:

c = b

#例子2

a,b=1,2

if a>b:

max=a

else:

max=b

print('max=',max)

第二種:一行表示式,條件為真時的表示式放if前

並且省略if和else的冒號,同時else後的語句只保留等式後面的

c=a if  a>b  else b

#例子2

max=a if a>b else b

print('max=',max)

為了更好理解,此處在增加乙個例子。

if的普通寫法:

if child[point]==0:

child[point]=1

else:

child[point]=0

簡潔寫法:

child[point] = 1 if child[point] == 0 else 0
第三種:二維列表,利用大小判斷的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為假

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_, '+++++++')

參考**:

Python中的 if else 語句

引入 if else的作用,滿足乙個條件做什麼,否則做什麼。if else 語句語法結構 if 判斷條件 要執行的 else 要執行的 判斷條件 一般為關係表示式或bool型別的值 執行過程 程式執行到if處,首先判斷所帶的條件,如果條件成立,就是返回值是true,則執行下面的 如果條件不成立則返回...

Python中if else語句的多種寫法

初學python在看程式時發現python中if else的多種寫法,故對其進行分析。以下為網路內容 a,b,c 1,2,3 1.常規 if a b c a else c b 2.表示式 c a if a b else b 3.二維列表 c b,a a b 4.傳說是源自某個黑客 c a b and...

SAS巨集中 if else和if else的區別

sas巨集中 if else和if else的區別 data a set x do m 1 to 3 do q 1 to 5 if x q nan and m id and x q id m q then do id m q 1 put 有值 且id相等 id x q id m q 上面 是正常的i...