2024-06-25 07:11:03 发布
网友
我正在寻找一个简短的语法,它看起来有点像x *= -1,其中x是一个数字,但对于布尔型,如果它存在的话。它的行为应该像b = not(b)。有趣的是,当变量名很长时,可以在一行中翻转布尔值
x *= -1
x
b = not(b)
例如,如果你有一个可以打开|关闭房子里的灯的程序,你希望避免写完整的东西:
self.lamps_dict["kitchen"][1] = not self.lamps_dict["kitchen"][1]
您可以使用xor operator (^):
x = True x ^= True print(x) # False x ^= True print(x) # True
编辑:正如注释中的Guimoute所建议的,您甚至可以通过使用x ^= 1来缩短它,但是它会将x的类型更改为一个整数,这可能不是您想要的,尽管它在直接将其用作条件if x:或while x:等情况下不会有任何问题
x ^= 1
if x:
while x:
您可以使用xor operator (^):
编辑:正如注释中的Guimoute所建议的,您甚至可以通过使用
x ^= 1
来缩短它,但是它会将x
的类型更改为一个整数,这可能不是您想要的,尽管它在直接将其用作条件if x:
或while x:
等情况下不会有任何问题相关问题 更多 >
编程相关推荐