Python为什么int(“ 0”)返回false

Sve*_*her 1 python validation int string-conversion

我正在尝试学习Python,并且可以在它的生命中不弄清楚为什么这样做:

i = raw_input("enter a number")

if int(i):
    print "yes"
else:
    print "false"
Run Code Online (Sandbox Code Playgroud)

如果i ==“ 0”不会返回true

背景:我正在尝试实现联合查找算法。一切正常,但是当我尝试连接两个点且一个为0时,它不会让我通过控件。(Python 2.7)

Ela*_*zar 5

Python类型具有布尔值,在特殊方法中定义。特别是0NoneFalse""(和任何其他空序列)为假。

明显,

>>> int("0")
0
Run Code Online (Sandbox Code Playgroud)

更重要的是,价值False是0,和值True是1,在大多数情况(除了其作为字符串表示,他们type,这是bool):

>>> 0 == False
True
Run Code Online (Sandbox Code Playgroud)