使用不等号运算符,我必须定义一个过程weekend,该过程将字符串作为输入,True如果为“ Saturday”或“ Sunday”,False则返回布尔值。
weekend
True
False
这是我的代码
def weekend(day): if day != 'Saturday' or day != 'Sunday': return False else: return True
这似乎False每天都在发生,我不知道为什么,从逻辑上讲它会起作用…有人可以解释吗?
固定版本:
if day != 'Saturday' and day != 'Sunday'
更好的版本:
return day in ['Saturday', 'Sunday']
为什么or不起作用:
or
当您使用时or,您的状况将显示为“如果今天不是星期六,或者今天不是星期日”。现在,将“今天”替换为“星期六”:
如果星期六不是星期六或星期六不是星期日
“星期六不是星期六”的陈述显然是错误的,“星期六不是星期日”的陈述显然是正确的,因此整个陈述变成“如果是错误或正确”,这始终是正确的。
将“今天”替换为其他任何一天,您会发现该句子的求值结果始终是这些句子之一,这始终是正确的:
if True or False # day = Sunday if False or True # day = Saturday if True or True # any other day