gpt4 book ai didi

python - 对象具有值(value)但似乎不存在?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:51 26 4
gpt4 key购买 nike

我有以下 Python 代码:

if bedrooms: # bedrooms exists
.....
else: # BEDROOMS DOES NOT EXIST
bn = "BEDROOMS DOES NOT EXIST"

我在我的调试器中逐步执行它并注意到即使 bedroom == 0 ,流程也会跳转到 else 语句。

为了测试这个我尝试了:

>>> bedrooms
0.0
>>> type(bedrooms)
<type 'float'>

谁能解释一下这是怎么回事?

最佳答案

0 在 Python 中总是计算为 False:

>>> bool(0)
False
>>> bool(0.0)
False
>>> not 0
True
>>>

因此,这样做:

if 0:
...
else:
...

将始终导致执行 else block 。

有关计算结果为 False 的完整列表,请参阅 Truth Value Testing在 Python 文档中。


如果你想检查 bedrooms 是否被定义,那么你可以使用 try/except阻止并捕获 NameError(当您使用不存在的名称时引发):

try:
bedrooms
except NameError:
# bedrooms is not defined

但这引出了一个问题,即为什么您首先需要这样做。如果它涉及动态变量名,那么我想说的是,大多数 Python 程序员认为这些都是不好的做法,应该避免。它们会很快导致维护问题,并且很容易忘记创建的名称。

关于python - 对象具有值(value)但似乎不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26512262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com