哪個「更正確(邏輯上)」? 具體到閏年,不一般。閏年布爾邏輯:包括括號?
用括號
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
沒有
return year % 4 == 0 and year % 100 != 0 or year % 400 == 0
附加信息
括號更改評估布爾值的順序(and
在or
之前(不帶圓括號))。
鑑於所有較大的數字在此問題中可以被較小的數字整除,它會以任何方式返回正確的結果,但我仍然很好奇。
注意括號的影響:
False and True or True #True False and (True or True) #False
False and False or True #True False and (False or True) #False
沒有括號,還有場景中,即使一年不被4整除(第一布爾)仍然返回True(我知道這是不可能的)! 不能被4整除,因此包含括號更正確嗎?還有什麼我應該關注的嗎?有人能解釋不包括括號的理論邏輯嗎?
的括號會改變評估順序而不是默認的從左到右。所以你必須真正有你的理由在種植它們之前改變訂單 –
留下評論並不意味着我低估了。 –