Python int(x)不做什么?

Python int(x)不做什么?,python,boolean-expression,Python,Boolean Expression,我很难理解not在以下语句中的含义: not int(x) 如果x等于0,则其计算结果为True。 但如果x是任何其他数字,它的计算结果为False 我想对这种行为进行解释,谢谢。如果某个对象为falsy,则某个对象不会返回True,即如果boolsome对象将返回False 对于任何整数z,boolz将始终为真,除非z==0。所以not intx只是一种检查x是否为零的方法,在使用int将其转换为整数之后 演示: 在布尔上下文中,我们可以省略对bool的调用。使用对象的隐式布尔特性非常方便,

我很难理解not在以下语句中的含义:

not int(x)
如果x等于0,则其计算结果为True。 但如果x是任何其他数字,它的计算结果为False

我想对这种行为进行解释,谢谢。

如果某个对象为falsy,则某个对象不会返回True,即如果boolsome对象将返回False

对于任何整数z,boolz将始终为真,除非z==0。所以not intx只是一种检查x是否为零的方法,在使用int将其转换为整数之后

演示:

在布尔上下文中,我们可以省略对bool的调用。使用对象的隐式布尔特性非常方便,尤其是当您想检查某些对象是否为空时,例如空字符串、集合、列表、字典

>>> not {}
True
>>> not []
True
>>> not set()
True
>>> not ''
True
>>> not tuple()
True
>>> not 0.0
True
>>> not 0j
True    
>>> not [1,2,3]
False
这里涉及的方法是针对Python2的非零方法和针对Python3的bool方法。理论上,我们可以忽略这些。请考虑下面的Python 2示例:

>>> class LyingList(list):
...     def __nonzero__(self): # for Py3, override __bool__
...         return True
... 
>>> liar = LyingList([])
>>> liar
[]
>>> not liar
False

我无法理解不在这里的意思。对不起,在什么地方?如果你被一段代码弄糊涂了,请发布那段代码。最好作为a,如果x为0,'0',或x为浮点且1>x>=0,则not intx将为真。否则它将是错误的。@Kevin现在应该可以理解了。为了完整性,空元组0.0和0j也是错误的。
>>> class LyingList(list):
...     def __nonzero__(self): # for Py3, override __bool__
...         return True
... 
>>> liar = LyingList([])
>>> liar
[]
>>> not liar
False