簡體   English   中英

為什么不用if其他簡寫與break一起工作 - Python

[英]Why doesn't if else shorthand work with break - Python

當條件匹配時,我一直試圖擺脫循環。 我試過下面的單行:

break if a is not None else time.sleep(1)

還有這個

a is not None and break
time.sleep(1)

兩者都沒有工作並拋出SyntaxError而直接工作正常。

if a is not None:
    break
time.sleep(1)

雖然我這樣使用它沒有問題,但我只是想知道為什么上面的語法是錯誤的。

表達式表達式 if 表達式 else 表達式是三元運算符。 表達式被評估。 break是一種說法。 它沒有被評估,它被執行了。 您收到語法錯誤,因為語法不正確。

正如@hugo Rivera在下面所說,“所有表達都是陳述,但並非所有陳述都是表達。”

所有表達式都是語句,但並非所有語句都是表達式。

三元運算符X if B else Y只接受表達式XBY ,但break是一個語句,不能用作表達式。

同樣,您不能在三元運算符中returnimport ,賦值等。 請參閱第二個鏈接以獲取完整的語句列表。

暫無
暫無

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

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