python-3.x - 10 <=n<=1 和 n<=1 或 n>=10 有什么区别?
问题描述
给定一个数字 n,如果 n 在 1..10 范围内,则返回 True,包括 1..10。除非 outside_mode 为 True,在这种情况下,如果数字小于或等于 1,或者大于或等于 10,则返回 True。
def in1to10(n, y):
if y:
if n<= 1 or n >= 10:
return True
else:
return False
else:
if n >= 1 and n <= 10:
return True
else:
return False
我无法理解代码之间的区别,请解释codingbat问题
def in1to10(n, y):
if y:
if 10 <= n <=1:
return True
else:
return False
else:
if 1<= n <= 10:
return True
else:
return False
解决方案
10 <= n <= 1
基本上意味着n <= 1 and n >= 10
与n <= 1 or n >= 10
让我们把它们放在一起看看区别:
n <= 1 and n >= 10
n <= 1 or n >= 10
如您所见,它们是相同的,除了第一个使用逻辑and
而另一个使用逻辑or
这意味着在第一个比较中,两个比较最终都必须为真,而在第二个中,只有一个比较必须为真
整个a <= b <= c
语法只是名为“比较链接”的语法糖,您可以在此处阅读更多相关信息
推荐阅读
- mongodb - 两个日期之间的 Mongodb 和 Codeigniter 记录
- fiware - 无法使用 Cygnus docker 安装映射 agent.conf
- oracle - 如何添加解码但也有计数、分组和排序 - 不是按表达式分组
- javascript - 异步同时请求承诺
- angular - 单击时更改图标颜色
- dart - Flutter - 设置脚手架的主体
- c - 在 C 中使用 short 是一种不好的做法
- ios - 如何按使用 fetchAssests 添加的日期顺序获取 PHAsset
- java - 将代码移动到我的 RecyclerAdapter 以防止 NPE
- java - Java 命名 - 字节缓冲区读取器/写入器或输入/输出流?