【问题标题】:Boolean expressions: function not returning expected output布尔表达式:函数未返回预期输出
【发布时间】:2015-06-16 22:15:45
【问题描述】:

问题:

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

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

测试:

should_shutdown(4.69, 50) 评估为: 'False'应该返回"True"

should_shutdown(5, 10) 评估为: False

should_shutdown(4.74, 90) 评估为: True

should_shutdown(4.74, 50) 评估为: False

should_shutdown(4.7, 50) 评估为: False

should_shutdown(4.75, 60) 评估为: True

should_shutdown(4.75, 59) 评估为: False

第一个测试没有返回测验服务器的预期输出。我不太明白这个问题,所以我复制粘贴了它。

【问题讨论】:

    标签: python-3.x boolean boolean-logic


    【解决方案1】:

    注意:

    1. battery_level &lt; 4.7 时,函数应始终返回True。

    2. battery_level &lt; 4.8time_on小于60时,函数也应该返回True。

    将这两者放在一起产生:

    def should_shutdown(battery_level, time_on):
        return (battery_level < 4.7) or (battery_level < 4.8 and time_on >= 60)
    

    【讨论】:

      【解决方案2】:
      def should_shutdown(battery_level, time_on):
          if battery_level < 4.8:
              return (time_on >= 60) or (time_on < 60 and battery_level < 4.7)
          return False
      

      这应该是上述问题的功能

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-02
        • 1970-01-01
        相关资源
        最近更新 更多