为了账号安全,请及时绑定邮箱和手机立即绑定

CodingBat > Warmup-1 > parrot_trouble

CodingBat > Warmup-1 > parrot_trouble

跃然一笑 2023-03-30 10:12:10
这是我作为程序员的第一个问题,我正在自学 Python,希望您能帮助我弄清楚为什么我对这个问题的回答是错误的。我知道解决方案更简单,语法上可能更正确,但我想知道为什么我的代码根本不起作用。我正在处理的问题:链接: https: //codingbat.com/prob/p166884粘贴在这里的问题:我们有一只大声说话的鹦鹉。“小时”参数是当前小时时间,范围为 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 == True and hour < 7 == True or hour > 20 == True:            return(True)结果:Expected    Run     parrot_trouble(True, 6) → True  None    X   parrot_trouble(True, 7) → False None    X   parrot_trouble(False, 6) → False    None    X   parrot_trouble(True, 21) → True None    X   parrot_trouble(False, 21) → False   None    X   parrot_trouble(False, 20) → False   None    X   parrot_trouble(True, 23) → True None    X   parrot_trouble(False, 23) → False   None    X   parrot_trouble(True, 20) → False    None    X   parrot_trouble(False, 12) → False   None    X   解决方案:def parrot_trouble(talking, hour):  return (talking and (hour < 7 or hour > 20))      Need extra parenthesis around the or clause      since and binds more tightly than or.      and is like arithmetic *, or is like arithmetic +我在小时布尔表达式周围尝试了括号,但这也不起作用:def parrot_trouble(talking, hour):        if talking == True and (hour < 7 == True or hour > 20 == True):            return(True)我不确定我的想法哪里出了问题。我感谢您的帮助。
查看完整描述

2 回答

?
慕雪6442864

TA贡献1812条经验 获得超5个赞

这里的问题是您使用此语句的语法

(hour < 7 == True or hour > 20 == True)

当你已经声明 hour < 7 时,你不需要放置 '== true'。

只需将其更改为

(hour < 7 or hour > 20)


查看完整回答
反对 回复 2023-03-30
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

def parrot_trouble(talking, hour):

        if talking == True and (hour<7 or hour>20):

            return True

        else:

            return False


查看完整回答
反对 回复 2023-03-30
  • 2 回答
  • 0 关注
  • 99 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信