为什么这条else语句不返回False?

时间:2020-06-07 03:33:04

标签: python arrays

我在做python蝙蝠,问题“ has23 ”如下:

给出一个int数组长度2,如果它包含2或3,则返回 True

到目前为止,我已经编写了此代码,希望它可以与else语句一起使用,但是如果在数组中未找到2或3,则无法触发False。

def has23(nums):
  if 2 or 3 in nums:
    return True

  else:
    return False

2 个答案:

答案 0 :(得分:2)

您需要完全编写以andor分隔的条件。您的代码实际上是在检查if 2if 3 in numsif 2实际上检查2是否为非零,这始终是正确的。

def has23(nums):
  if 2 in nums or 3 in nums:
    return True
  else:
    return False

答案 1 :(得分:0)

在Python中,写2 or 3 in nums实际上意味着(2) or (3 in nums)。由于True是真实值,因此它们始终会评估为2。要在这里执行您的意图,您应该写的是2 in nums or 3 in nums