为什么Python将其评估为true?

时间:2019-03-22 04:10:58

标签: python python-3.x

我来自C语言背景,发现这很奇怪。

a = 0

b = 0

if (a == b) != 0:
    print('non zero and equal')
else:
    print('something wrong')

这将显示“非零等于”。

在C中,a == b的值为true,即非零。 现在,您将非零与零进行比较,得出false,即0。

这在Python中如何工作?

我试图做这样的事情:

if a==b !=0:

它有效,但是我知道那里有些懒惰的评估,我需要了解它。

3 个答案:

答案 0 :(得分:0)

a==b来到True

此外,True != 0的值为True

答案 1 :(得分:0)

与C相同,当a == b出现为true时是1

(a == b) != 0

给予

1!= 0

,因此是打印语句

答案 2 :(得分:0)

在Python3中,True的值为1,而False的值为0。请查找以下内容,以了解更多信息。 另请阅读此operator comparisons,以清除您的理解。

Python 3.6.8 |Anaconda, Inc.| (default, Dec 29 2018, 19:04:46)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> True != 0
True
>>> False != 1
True
>>> False == 0
True
>>> True == 1
True
>>> True == 4
False