-3

我来自 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:

它起作用了,但我知道那里有一些懒惰的评估,我需要理解它。

4

3 回答 3

0

a==b来到True

此外,True != 0其评估结果为True.

于 2019-03-22T04:23:34.787 回答
0

它和 C 一样,当a == b它出现时true1

(a == b) != 0

1!= 0

因此打印语句

于 2019-03-22T04:24:42.067 回答
0

在 Python3 中,True 的计算结果为 1,而 False 的计算结果为 0。请在下面找到更多理解。另请阅读此运算符比较以清除您的理解。

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
于 2019-03-22T04:25:58.970 回答