有“ + =”运算符,即int。a = 5a += 1b = a == 6 # b is True是否有bool的“ and =“运算符?a = Truea and= 5 > 6 # a is Falsea and= 5 > 4 # a is still False我知道,此“ and =”运算符将对应于:a = Truea = a and 5 > 6 # a is Falsea = a and 5 > 4 # a is still False但是,我经常执行此操作,但我认为它看起来并不整洁。
3 回答

月关宝盒
TA贡献1772条经验 获得超5个赞
是的-您可以使用&=。
a = True
a &= False # a is now False
a &= True # a is still False
您可以类似地使用|=“ or =”。
应该注意的是(这在下面的评论中)这实际上是一个按位操作;仅当a以Boolean开头时,它才会具有预期的行为,并且仅使用Boolean进行操作。

慕的地6264312
TA贡献1817条经验 获得超6个赞
nrpeterson向您展示了如何&=与布尔值一起使用。
我仅显示如果将布尔值和整数混合使用会发生什么情况
a = True
a &= 0 # a is 0
if a == False : print "hello" # "hello"
a = True
a &= 1 # a is 1
if a == False : print "hello" # nothing
a = True
a &= 2 # a is 0 (again)
if a == False : print "hello" # "hello"
a = True
a &= 3 # a is 1
if a == False : print "hello" # nothing
添加回答
举报
0/150
提交
取消