簡體   English   中英

python 3 boolean 邏輯快捷方式

[英]python 3 boolean logic shortcut

我的代碼看起來像這樣:

x = someIntValue
if y is None:
    y = x

elif x < y:
    y = x

有沒有更短的方法來做到這一點? 例如,類似: y = x if x < y or not y

問題是y可以是None和或數字

由於兩個條件的最終結果相同,因此您可以將它們合並為一個 if。

if y is None or x < y :
    y = x

正如@Giacomo 在評論中解釋的那樣,可以使用一個襯里版本(因為 y 已經定義)

y = x if ( y is None or x < y ) else y

您不能使用條件表達式准確地編寫此代碼,因為在兩個 boolean 表達式均為False的情況下根本不會分配y (好吧,如果您願意將y重新分配給它自己,則可以)。 您可以或當然可以不用elif

x = someIntValue
if y is None or x < y:
    y = x

(我假設y在此之前也有一個值)。

你的x < y or not y不好有兩個原因。 首先,它在not y之前評估x < y ,如果yNone則失敗。 其次, not y在邏輯上不等同於y is None 例如,對於y = 0not y結果為Truey is None結果為False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM