我期望以相同的方式評估以下兩個代碼塊,但似乎並非如此。例如,用此:如何評估具有多個條件的條件語句?
if True or False and False:
print('True')
else:
print('False')
打印爲真。但有了這個:
if (True or False) and False:
print('True')
else:
print('False')
False is printed。這裏是我的邏輯故障:
True or False
=True
True and False
=False
通過置換,(True or False) and False
= True and False
= False
。
爲什麼會發生這種情況?
這與短路無關。非短路評估會產生相同的結果。 – user2357112
你仍然沒有提到優先順序。根據你的回答邏輯,「假,真或假」將是「假」。 – user2357112
@ user2357112我已更新答案以包含正確信息。感謝您指出錯誤信息和批評,非常感謝! – Li357