我们可以在python中为变量分配分配的变量吗?

时间:2020-09-01 03:13:32

标签: python

我有以下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)  

2 个答案:

答案 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
>>> 

在您的示例中,True1,而False0,所以

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。