【问题标题】:Why is my code returning False when the if statement criteria are met?为什么当满足 if 语句条件时我的代码返回 False?
【发布时间】:2020-05-21 18:44:00
【问题描述】:

如果 nums(非负数)在 10 的倍数的 2 以内,则目标是返回 True。

不起作用的测试用例是: near_ten(19) → True(我的代码返回 False) near_ten(158) → True(我的代码返回 False)

def near_ten(num):
  a = num % 10
  if a <= 2:
    return True
  elif a > 2:
    return False

【问题讨论】:

  • 19%10 是 9,大于 2。为什么不检查 a 是否大于或等于 8?
  • 它唯一的错误if 2 &lt; a &lt; 8

标签: python if-statement boolean


【解决方案1】:

怎么样

def close_to_ten(num):
    return not (2  < num%10 < 8)

【讨论】:

    【解决方案2】:

    您错过了 8 和 9 的支票,它们仍在 10 之 2 之内。

    def near_ten(num):
      a = num % 10
      if a <= 2 or a >= 8: # we want to get 0 1 2 and 8 9
        return True
      return False # in all other cases it is False
    

    【讨论】:

    • 知道了。没有考虑2小于10,只是从0
    • 很高兴能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    相关资源
    最近更新 更多