哪个“更正确(逻辑上)”? 具体到闰年,不一般。闰年布尔逻辑:包括括号?
用括号
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整除,因此包含括号更正确吗?还有什么我应该关注的吗?有人能解释不包括括号的理论逻辑吗?
的括号会改变评估顺序而不是默认的从左到右。所以你必须真正有你的理由在种植它们之前改变订单 –
留下评论并不意味着我低估了。 –