Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >返回None而不是False

返回None而不是False
EN

Stack Overflow用户
提问于 2020-08-18 01:26:22
回答 4查看 61关注 0票数 0

因此,我正在CodingBat上做一个问题,这是一个提供JS和practice问题的网站。我遇到了一个意想不到的输出。顺便说一句,这是问题的链接:https://codingbat.com/prob/p135815。理论上,我的代码应该返回False,但当我将打印(squirrel_play(50,False))放入时,它将不返回。

代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def squirrel_play(temp, is_summer):
if is_summer:
    if temp <= 100:
        if temp >= 60:
            return True
    elif temp <= 60:
        return False
    elif temp >= 100:
        return False
if not is_summer:
    if temp <= 90:
        if temp >= 60:
            return True
    elif temp >= 90: 
        return False
    elif temp <= 60:
        return False

当我运行打印(squirrel_play(50,False))时,我没有得到(我应该得到假)为什么?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-08-18 01:32:24

如果参数为is_summer of False,则在第二个条件块中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if not is_summer:
    if temp <= 90:
        if temp >= 60:
            return True
    elif temp >= 90: 
        return False
    elif temp <= 60:
        return False

然后沿着这个街区走:

  • 温度低于90吗?是。所以现在我们在这个街区:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if temp <= 90:
  if temp >= 60:
    return True

这里所发生的事情是,您永远无法到达elif temp <= 60,因为您处于第一个条件中。只有在不满足第一个条件的情况下,才能到达下面的elif。

在这个if temp <= 90块的末尾,整个条件链结束,您的函数返回None的默认值,因为您没有提供另一个返回值。

通过让整个代码读懂,您可能会更清楚地看到这一点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def squirrel_play(temp, is_summer):
if is_summer:
    if temp <= 100:
        if temp >= 60:
            return True
    elif temp <= 60:
        return False
    elif temp >= 100:
        return False
if not is_summer:
    if temp <= 90:
        if temp >= 60:
            return True
        else:
           return "This is where I'm returning with 50, and True as my parameters"
    elif temp >= 90: 
        return False
    elif temp <= 60:
        return False
票数 0
EN

Stack Overflow用户

发布于 2020-08-18 01:32:23

你试过调试它吗?对于squirrel_play(50, False),它将分为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def squirrel_play(temp, is_summer):

if is_summer:
    if temp <= 100:
        if temp >= 60:
            return True
    elif temp <= 60:
        return False
    elif temp >= 100:
        return False
if not is_summer:
    if temp <= 90:
        if temp >= 60:
            return True
        # HERE ( 50 is less than 90 but not greater than 60 ) 
        # and you have no return statement for this case
    elif temp >= 90: 
        return False
    elif temp <= 60:
        return False
票数 0
EN

Stack Overflow用户

发布于 2020-08-18 01:32:29

当前对其进行编码的方式,在

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    if temp <= 90:
        if temp >= 60:
            return True
    elif ....

如果第一个if测试计算为True,而第二个测试计算为False,则不会达到return语句(请记住,由于第一个if计算为true,因此没有执行后续的if测试),因此函数返回None

实际上,您可以通过使用链式比较算子来简化函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def squirrel_play(temp, is_summer):
    if is_summer:
        return 60 <= temp <= 100
    else:
        return 60 <= temp <= 90
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63465686

复制
相关文章
为什么1000 == 1000返回为False,而100 == 100会返回为True?
这是我们今天要讨论的话题,因为我觉得它非常的有趣。 如果你运行如下代码: Integer a = 1000, b = 1000; System.out.println(a == b);//1 Integer c = 100, d = 100; System.out.println(c == d);//2 你会得到以下运行结果: false true 我们知道,如果两个引用指向同一个对象,那么==就成立;反之,如果两个引用指向的不是同一个对象,那么==就不成立,即便两个引用的内容是一样的。因此,结果
顶级程序员
2018/04/26
1.7K0
springcloud 返回的数据为XML 而不是JSON
本人的原因是因为引入了jackson-dataformat-xml依赖导致的,下面查看自己项目是否包含此依赖,如果包含的话,可以去掉。 有的人添加了下面注解后可以解决,不过我这里没有解决。还是依靠上图
qubianzhong
2019/04/01
2.3K0
springcloud 返回的数据为XML 而不是JSON
new_tensor(data, dtype=None, device=None, requires_grad=False) → Tensor
new_tensor(data, dtype=None, device=None, requires_grad=False) → Tensor
狼啸风云
2020/04/26
2K0
为什么 useState 返回的是 array 而不是 object?
这里可以看到 useState 返回的是一个数组,那么为什么是返回数组而不是返回对象呢?我们在自定义 hook 时应该返回什么类型呢?
小鑫
2022/04/26
2.3K0
奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true?
奇怪的Java题:为什么128 == 128返回为false,而127 == 127会返回为true? 在回答这个问题之前,我们先来看看int和Integer的对比,一步步揭开问题的答案。 1. i
互扯程序
2019/06/19
2.3K0
【工作笔记】PathFileExists 返回 FALSE
在参数传递正确,文件确实存在的情况下,PathFileExists偶尔返回FALSE
全栈程序员站长
2022/09/14
5840
电脑拥有GOU却仍返回False
电脑拥有独立显卡,pycharm中torch.cuda.is_available()总是返回false。
算法与编程之美
2023/01/03
5450
电脑拥有GOU却仍返回False
为什么1000==1000返回false,100==100返回true?
这可能是个讨论得较多的话题,但是我觉得它很有趣:为什么1000==1000返回false,100==100返回true?
三哥
2018/12/19
1.2K0
Python 函数为什么会默认返回 None?
Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。
Python猫
2020/08/18
2.2K0
php unserialize 返回false的解决方法
php 提供serialize(序列化) 与unserialize(反序列化)方法。
全栈程序员站长
2022/07/11
1K0
android bindservice方法,Android bindservice方法返回false
我想从另一个类(BaseExpandableListAdapter)的活动中调用一个方法。活动中的方法启动服务并调用bindService(,,)方法。但是,bindService方法总是返回false。我查了其他类似的帖子,但没有一个解决了我的问题。任何评论非常感谢。Android bindservice方法返回false
全栈程序员站长
2022/09/01
1.2K0
Feign配置微服务间调用返回XML而不是Json的解决方案
springcloud中的微服务之间通过网关的api调用时,返回的是xml格式,而不是相应的json串,如果想要返回json格式如何处理呢
在水一方
2022/06/14
1.6K0
Feign配置微服务间调用返回XML而不是Json的解决方案
何时使用MongoDB而不是MySql
MySQL 和 MongoDB 是两个可用于存储和管理数据的数据库管理系统。MySQL 是一个关系数据库系统,以结构化表格格式存储数据。相比之下,MongoDB 以更灵活的格式将数据存储为 JSON 文档。两者都提供性能和可扩展性,但它们为不同的应用场景提供了更好的性能。
wayn
2023/08/09
1K0
何时使用MongoDB而不是MySql
何时使用Kafka而不是RabbitMQ
Kafka 和 RabbitMQ 都是流行的开源消息系统,它们可以在分布式系统中实现数据的可靠传输和处理。Kafka 和 RabbitMQ 有各自的优势和特点,它们适用于不同的场景和需求。本文将比较 Kafka 和 RabbitMQ 的主要区别,并分析何时使用 Kafka 而不是 RabbitMQ。
wayn
2023/06/26
3540
何时使用Kafka而不是RabbitMQ
为什么Python中的None is None is None == True
最近在StackOverflow上看到了一个问题,为什么Python中的None is None is None返回True,看到大家的讨论后对Python中的比较运算有了更深的认识。
杜逸先
2018/06/28
2.3K0
为什么Python中的None is None is None == True
何时使用Elasticsearch而不是MySql
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景
wayn
2023/08/28
3020
何时使用Elasticsearch而不是MySql
Python的is None vs ==None
想要弄清楚is None和==None的区别,首先要清楚==和is的区别。==和is的区别如下:
Tyan
2020/05/26
2.2K0
何时使用Elasticsearch而不是MySql
MySQL 和 Elasticsearch 是两种不同的数据管理系统,它们各有优劣,适用于不同的场景。本文将从以下几个方面对它们进行比较和分析:
wayn
2023/08/09
6900
何时使用Elasticsearch而不是MySql
iis站点设置错误页面返回http状态码为404而不是302或其他
  今天一位客户说网站错误页面返回的状态码是302而不是404,问ytkah要如何处理。这个应该是设置没有正确的原因。我们一步步来排查一下。1、首先打开iis管理器,左侧选择具体的站点,在右侧窗口中点击404错误页,如下图所示
ytkah
2019/09/25
3.3K0
iis站点设置错误页面返回http状态码为404而不是302或其他
点击加载更多

相似问题

python返回none而不是True/False

11

Python返回None而不是True/False

23

Python为什么函数返回None而不是False

42

为什么它返回None而不是True或False?

122

函数返回none而不是返回号。

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文