布尔运算符和条件

时间:2014-10-24 00:31:39

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

我很难让我的代码完美运行。

问题:

写一个函数should_shutdown(battery_level,time_on),如果电池电量低于4.8,则返回True,除非time_on小于60.如果不是这种情况,只有当电池电量不足时,该函数才返回True。比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) 预期:错误 得到:错误

1 个答案:

答案 0 :(得分: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: