【问题标题】:Boolean operators and Conditions布尔运算符和条件
【发布时间】:2014-10-24 00:31:38
【问题描述】:

我正在努力让我的代码完美运行。

问题:

编写一个函数 should_shutdown(battery_level, time_on) 如果电池电量小于 4.8 则返回 True,除非 time_on 小于 60。超过 4.7。在所有其他情况下,该函数返回 False。

我的代码:

def should_shutdown(battery_level,time_on):
    if battery_level and time_on < 60:
        return False
    elif battery_level < 4.8:
        return True
    else:
        return False

它工作得很好,除非我用以下方法测试它:

ans = should_shutdown(4.69, 50)
print(ans)

它返回False,但正确答案应该是True

其他测试:

  • should_shutdown(5, 10) 预期:错误 得到:错误

  • should_shutdown(4.74, 90) 预期:真 得到:是的

  • should_shutdown(4.74, 50) 预期:错误 得到:错误

  • should_shutdown(4.7, 50) 预期:错误 得到:错误

- should_shutdown(4.69, 50) 预期:真 得到:错误

  • should_shutdown(4.75, 60) 预期:真 得到:是的

  • should_shutdown(4.75, 59) 预期:错误 得到:错误

【问题讨论】:

    标签: python-3.x conditional-statements boolean-operations


    【解决方案1】:
    def should_shutdown(battery_level, time_on):
        if battery_level < 4.8:
            if time_on < 60:
                return False
            else:
                return True
        else:
            if battery_level < 4.7:
                return True
            else:
                return False
    

    您的问题在于第一个 if 语句:

    if battery_level and time_on < 60:
    

    这是一样的

    if battery_level!=0 and time_on<60:
    

    这是因为在 python 中,任何不是0 的数字都会计算为True。也许你的意思是:

    if battery_level<4.8 and time_on < 60:
    

    【讨论】:

    • 你的代码给了我和我一样的结果。它没有通过这个:ans = should_shutdown(4.69, 50) print(ans) 它正在返回 False,而不是 True
    • returns True if the battery level is less than 4.8 except when the time_on is less than 60。在battery_level=4.69time_on=50,我们在规范中提到except when the time_on is less than 60 的部分,这意味着return False。所以这个输出是正确的
    • 是的,但我认为你错过了它所说的部分:仅当电池电量低于 4.7 时才返回 True
    • 它仍然没有通过:should_shutdown(4.69, 50)。它正在返回False。 - @inspectorG4dget
    • @Moh'dH:在这一点上,我要说这个问题是模棱两可的。请使用示例输入和预期输出编辑您的帖子,并清楚地解释它们如何证明问题的要求。我的代码做了我理解的问题。既然这显然是错误的,我需要澄清一下
    猜你喜欢
    • 2011-04-22
    • 2011-09-27
    • 2011-03-27
    • 2011-12-29
    • 2014-05-10
    • 2017-12-05
    相关资源
    最近更新 更多