Python 为什么整数总是真的
我对if/else语句有点困惑。为什么代码总是打印True,而它应该是False 我尝试了不同的变量,如Python 为什么整数总是真的,python,Python,我对if/else语句有点困惑。为什么代码总是打印True,而它应该是False 我尝试了不同的变量,如I=10,I=a',I=25。如果i=[] 这是我的代码: i=1 如果我: 打印真实 其他: 如果I:True,则在代码中打印False,您会说。但你不能把它和任何东西相比。您需要一个比较运算符。与if i==1类似,否则,如果默认情况下i有一个值,if语句将为true其值为false,表示0。能够检查一个数字是否为非零,或者一个字符串是否为非空,等等,这不是很好吗?:)为什么你认为这些例子
I=10
,I=a'
,I=25
。如果i=[]
这是我的代码:
i=1
如果我:
打印真实
其他:
如果I:True,则在代码中打印False,您会说。但你不能把它和任何东西相比。您需要一个比较运算符。与if i==1
类似,否则,如果默认情况下i有一个值,if语句将为true其值为false,表示0。能够检查一个数字是否为非零,或者一个字符串是否为非空,等等,这不是很好吗?:)为什么你认为这些例子中的任何一个都应该是False
?因为据我所知,如果I:等于如果I==1。不是吗?不,不是。这里有一些。因此(tl;dr)更接近于bool(i)
,对于int,它转换为i!=0
。不同的语言有不同的约定,你必须小心假设。“不将它与任何东西进行比较”是不正确的。在一行如果x:
,x本身被评估为Truthy/Falsy值,因此相当于如果bool(x) ==真
。