[英]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
只接受表達式X
, B
和Y
,但break
是一個語句,不能用作表達式。
同樣,您不能在三元運算符中return
, import
,賦值等。 請參閱第二個鏈接以獲取完整的語句列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.