首页 > 解决方案 > 如何解决以下问题,这是来自codingbat的鹦鹉问题?

问题描述

我们有一只大声说话的鹦鹉。该hour参数是0..23 范围内的当前小时时间。如果鹦鹉在说话并且时间在 7 点之前或 20 点之后True,我们就有麻烦了。如果我们有麻烦,请返回。

parrot_trouble(True, 6) → True
parrot_trouble(True, 7) → False
parrot_trouble(False, 6) → False

这是我的代码

def parrot_trouble(talking, hour):
    if talking and hour < 7 or hour > 20:
        return True
    else:
        return False

我的代码已经解决了大部分问题,但最后两个不起作用请帮忙!

parrot_trouble(False, 21) → False
parrot_trouble(False, 23) → False

此外,如果您有更高效的代码,请务必编写它。

标签: python

解决方案


将括号添加到hour < 7 or hour > 20. 否则当hours>20talking and hour < 7 or hour > 20得到true

def parrot_trouble(talking, hour):
    if talking and (hour < 7 or hour > 20):
        return True
    else:
        return False
print(parrot_trouble(False, 21))

编辑:另外,您可以使用(如第一条评论),

def parrot_trouble(talking, hour): 
    return talking and (hour < 7 or hour > 20)

推荐阅读