为什么代码1工作正常,而代码2工作不正常((Python)

2024-10-03 00:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Codebat上尝试这个练习:

给定一个数字n,如果n在1到10之间(含1到10),则返回True。除非outside\u 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

有人能给我解释一下吗,因为我觉得这些代码很相似


Tags: orand代码intruereturnifmode
1条回答
网友
1楼 · 发布于 2024-10-03 00:18:48

这行错了:

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

相关问题 更多 >