首页 > 解决方案 > 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

标签: python-3.x

解决方案


10 <= n <= 1基本上意味着n <= 1 and n >= 10n <= 1 or n >= 10

让我们把它们放在一起看看区别:

n <= 1 and n >= 10
n <= 1 or  n >= 10

如您所见,它们是相同的,除了第一个使用逻辑and而另一个使用逻辑or

这意味着在第一个比较中,两个比较最终都必须为真,而在第二个中,只有一个比较必须为真

整个a <= b <= c语法只是名为“比较链接”的语法糖,您可以在此处阅读更多相关信息


推荐阅读