为什么代码1不能正常工作,而代码2却不能正常工作? (蟒蛇)

时间:2019-02-07 14:12:06

标签: python python-3.x

我正在Codebat上尝试这项运动:

给出一个数字n,如果n在1..10(含)范围内,则返回True。除非outside_mode为True,否则如果数字小于或等于1,或者大于或等于10,则返回True。

代码1:

def in1to10(n, outside_mode):
  if not outside_mode:
      return  n in range(1,11)
  return n <= 1 or n >= 10 

代码2:

def in1to10(n, outside_mode):
  if outside_mode and  n <= 1 and n >= 10:
    return True
  elif n >= 1 and n <= 10:
    return True
  else:
    return False

有人可以向我解释这一点,因为我认为这些代码非常相似。

1 个答案:

答案 0 :(得分:0)

此行是错误的:

if outside_mode and  n <= 1 and n >= 10:

n不可能同时小于(或等于)1和大于(或等于)10 应该是:

def in1to10(n, outside_mode):
  if outside_mode and  n <= 1 or n >= 10:
    return True
  elif n >= 1 and n <= 10:
    return True
  else:
    return False