我有以下python代码。我无法理解结果如何将x值打印为 true,Z值为false。而a为11,b为10。
x = (1 == True)
y = (2 == False)
z = (3 == True)
a = True + 10
b = False + 10
print("x is", x)
print("y is", y)
print("z is", z)
print("a:", a)
print("b:", b)
答案 0 :(得分:2)
让我们看看是对是假的
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>> bool.__bases__
(<class 'int'>,)
True和False是bool
类型,其本身是int
的一种特殊形式。它们的行为就像整数1和0。
>>> int(True)
1
>>> int(False)
0
但是与常规变量不同,您不能为它们分配任何内容。那是因为它们也是python语言Keywords,并且编译器不允许名称“ True”和“ False”成为变量。
>>> True = 10
File "<stdin>", line 1
SyntaxError: cannot assign to True
>>>
在您的示例中,True
是1
,而False
是0
,所以
This... is the same as... resulting in...
1 == True 1 == 1 True
2 == False 2 == 1 False
3 == True 3 == 1 False
True + 10 1 + 10 11
False + 10 0 + 10 10
答案 1 :(得分:0)
在python中,True = 1,False = 0,因此x =(1 == True)表示x = True(如果1 == 1则为False)。
对于z,z =(3 == True)表示z =(3 == 1)。 3不等于1,所以z = False。
对于a,a = True + 10表示a = 1 + 10 = 11。 对于b,b = False + 10表示b = 0 + 10 = 10。