在 Python 中使用逻辑运算符的赋值运算符

Posted

技术标签:

【中文标题】在 Python 中使用逻辑运算符的赋值运算符【英文标题】:Assignment operators using logical operators in 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 运算符是为许多类型定义的,所以答案应该是 【参考方案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 用于逻辑操作

以上是关于在 Python 中使用逻辑运算符的赋值运算符的主要内容,如果未能解决你的问题,请参考以下文章

python3.5中的赋值运算符和逻辑运算符

Python3 运算符:算术运算符比较运算符赋值运算符位运算符逻辑运算符成员运算符等介绍

Python算术运算符赋值运算符关系运算符逻辑运算符条件运算符(三元运算符)

python 开发 -- 05基本运算符

Python 基础 常用运算符

为啥 ~= 在 C++ 中缺少唯一的非逻辑赋值运算符? [关闭]