True = False == True

时间:2010-08-31 05:49:10

标签: python

  

可能重复:
  Why can't Python handle true/false values as I expect?

False = True在这种情况下会引发错误。

False = True
True == False
True

True + False == True?

if True +  False:
    print True
True

真的再次?

if str(True + False) + str(False + False) == '10':
    print True
True

LOL

if True + False + True * (False * True ** True / True - True % True) - (True / True) ** True + True - (False ** True ** True):
    print True, 'LOL'
True LOL

为什么这都是真的?

2 个答案:

答案 0 :(得分:12)

False只是一个全局变量,您可以分配给它。但是,如果你这样做的话,它会破坏一切。

请注意,此行为已在python3k中删除

Python 3.1 (r31:73578, Jun 27 2009, 21:49:46) 
>>> False = True
  File "<stdin>", line 1
SyntaxError: assignment to keyword

另外,int(False) == 0和int(True) == 1,所以你可以用它们进行任意算术

答案 1 :(得分:7)

请参阅Why can't Python handle true/false values as I expect?,这将回答您的第一个问题。基本上你可以想到:

False = True
True == False
True

作为

var = True
True == var
True

(让我想起#define TRUE FALSE // Happy debugging suckers *咯咯笑*)

至于其他问题,当您对TrueFalse进行算术运算时,它们会转换为10

  • True + False1 + 0相同,即1True

  • str(True + False) + str(False + False)str(1) + str(0)相同,此处+连接字符串,因此您将获得10

  • 你的最后一个是一组算术运算,给出非零结果(1),即为True。