【问题标题】:Assignment operators using logical operators in Python在 Python 中使用逻辑运算符的赋值运算符
【发布时间】:2018-12-18 06:23:19
【问题描述】:

我知道我可以在 Python 中将赋值运算符与算术运算符一起使用,例如:

x = 0x8
x |= 0x1  # x equals 9

我想知道这是否也可以使用逻辑运算符,例如:

x = 2 > 3  # False
y = 4 > 3  # True
x or= y  # x equals True

我可以使用类似于=or 操作的东西吗?

【问题讨论】:

  • @bipll tr​​ue,但逻辑运算符不仅限于 int 或 bool 类型。我也可以使用[] or {0+1j}
  • 如果您确定参数将始终为布尔值,x |= y 在功能上与您提议的x =or y 语句相同。
  • 好的,这是一个合理的要求。只要确保我们都在同一个页面上:-)
  • @bipli 你不应该假设我的操作数和操作结果都是布尔值,在我在 cmets 中展示的示例中,我的操作数是列表和字典,结果是字典
  • @scharette 我稍后可能会对其进行编辑,但由于andor 运算符是为许多类型定义的,所以答案应该是

标签: python logical-operators assignment-operator


【解决方案1】:

你用的是什么版本的python? python 3.6.5 可以处理x = False; x |= True,之后为x 生成True

【讨论】:

  • 那么就x = True?如果 OP 想要将 x 设置为特定值 (True),他们就不需要使用任何运算符,不是吗?
  • 好吧,x|=y 以同样的方式工作 - 也许我不太明白他的问题的重要性,但在我看来,op 想要拥有与 x += 4 等价的东西而不是x = x + 4 用于逻辑操作
猜你喜欢
  • 2015-11-06
  • 2014-01-12
  • 1970-01-01
  • 1970-01-01
  • 2014-01-08
  • 2013-08-14
  • 2018-09-28
  • 1970-01-01
  • 2020-12-20
相关资源
最近更新 更多