Mar*_*ria 2 python inequality boolean return
使用不等式运算符,我必须定义一个过程周末,它以字符串作为输入,如果是'Saturday'或'Sunday'则返回布尔值True,否则返回False.
这是我的代码
def weekend(day):
if day != 'Saturday' or day != 'Sunday':
return False
else:
return True
Run Code Online (Sandbox Code Playgroud)
这似乎每天都会返回False,我不知道为什么,从逻辑上说它会起作用.o_o ..任何人都可以解释一下我太正常了:S
固定版本:
if day != 'Saturday' and day != 'Sunday'
Run Code Online (Sandbox Code Playgroud)
更好的版本:
return day in ['Saturday', 'Sunday']
Run Code Online (Sandbox Code Playgroud)
为什么or不起作用:
当你使用时or,你的病情会读到"如果今天不是星期六或今天不是星期天".现在用"星期六"替换"今天":
如果星期六不是星期六或星期六不是星期日
声明"星期六不是星期六"显然是错误的,"星期六不是星期天"显然是真的,所以整个声明变成"如果是假的或真实的",这总是正确的.
在任何其他日子替换"今天",你会发现句子总是评估这些句子中的一个,这些句子总是如此:
if True or False # day = Sunday
if False or True # day = Saturday
if True or True # any other day
Run Code Online (Sandbox Code Playgroud)
处理此问题的最佳方法是使用以下内容:
return day.lower() in ['saturday','sunday']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3136 次 |
| 最近记录: |