首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CodingBat >热身-1> parrot_trouble

CodingBat >热身-1> parrot_trouble
EN

Stack Overflow用户
提问于 2020-07-23 19:26:21
回答 3查看 2.2K关注 0票数 0

这是我作为程序员的第一个问题,我正在自学Python,希望您能帮助我找出为什么我对这个问题的答案是错误的。

我理解这个解决方案更简单,而且在语法上可能更正确,但我想知道为什么我的代码根本不起作用。

我正在处理的问题:

链接:https://codingbat.com/prob/p166884

问题来了:我们有只会大声说话的鹦鹉。" hour“参数是在0..23范围内的当前小时时间。如果鹦鹉在说话,时间是在7点或20点以后,我们就有麻烦了。如果我们有麻烦,请返回真实。

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

我的答案:

代码语言:javascript
运行
复制
def parrot_trouble(talking, hour):
        if talking == True and hour < 7 == True or hour > 20 == True:
            return(True)

结果:

代码语言:javascript
运行
复制
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   

解决方案:

代码语言:javascript
运行
复制
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 +

我试着在小时布尔表达式周围加上括号,但这也不起作用:

代码语言:javascript
运行
复制
def parrot_trouble(talking, hour):
        if talking == True and (hour < 7 == True or hour > 20 == True):
            return(True)

我不知道我的想法哪里出了问题。谢谢你的帮助。

EN

回答 3

Stack Overflow用户

发布于 2020-07-23 19:27:48

return是关键字,而不是函数。尝试return True而不是return(True)

这是因为括号象征着执行一个函数,所以它意味着您正在调用一个函数。

票数 0
EN

Stack Overflow用户

发布于 2020-11-26 06:22:26

代码语言:javascript
运行
复制
def parrot_trouble(talking, hour):
        if talking == True and (hour<7 or hour>20):
            return True
        else:
            return False
票数 0
EN

Stack Overflow用户

发布于 2020-11-26 06:36:52

这里的问题是这个语句的语法。

代码语言:javascript
运行
复制
(hour < 7 == True or hour > 20 == True)

当您已经声明时间< 7时,不需要将'== true‘写成“true”。

只需将其改为

代码语言:javascript
运行
复制
(hour < 7 or hour > 20)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63061751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档