我正在研究Python中的运算符,并在表达式中有多个运算符时,遇到了决定计算顺序的多个概念。
我理解运算符优先的概念,并在Python中遇到了运算符优先表。有几件事让我困惑,
后一个问题源于我在互联网上所读到的对操作符的分类,它们将操作符分为以下几类
但是,当我在Python文档中的操作符优先级表中看到诸如lambda、if-else这样的关键字时,我感到很困惑。此外,操作符模块文档中的运算符映射表还包括诸如del这样的关键字,这些关键字既不是internet上常见分类的一部分,也不是Python中的优先级表。
我的最后一个问题是,“对于
Python中操作符的类别及其行为(优先级、链结、结合性等)?还是我应该独立研究每一个操作者及其行为?“
发布于 2019-07-14 18:17:50
为什么赋值和增广分配运算符不包括在列表中?
因为他们不是真正的运营者。我们有时为了方便而称它们为运算符,但它们不能形成表达式,因此相对于实际运算符没有优先权。
在Python中,什么才是运算符?(操作符和关键字之间是否有任何区别)。
根据运算符上的文档,它似乎是任何可以形成表达式的标点符号。为了简单起见,我倾向于将运算符定义为可以形成表达式的任何标点符号或关键字。
但是当我在Python文档中的操作符优先级表中看到诸如
lambda、if-else这样的关键字时,我感到很困惑。
这些关键字可以形成表达式,因此它们必须具有运算符优先。请注意,if-else可以是表达式或块语句,具体取决于语法:
# Expression
a if condition else b
# Statement
if condition:
pass
else:
pass此外,操作符模块文档中的操作符映射表还包括关键字,比如
del,它们既不是internet上常见分类的一部分,也不是Python中的优先级表。
del不是运算符,因为它只用于获得副作用.但是,它可能会修改一个合适的对象,因此在operator库中包含一个功能也是有意义的。del的另一个用途是删除一个变量,这是函数无法做到的。
我的最后一个问题是“对于Python中操作符的类别及其行为(优先级、链结、结合性等)是否可以进行分组?还是应该独立研究每个操作符及其行为?”
运算符总是可以组合成更大的表达式,因此它们必须具有优先级和结合性来定义非平凡表达式的意义。非运算符语法通常形成一条语句或一组语句.
https://stackoverflow.com/questions/57029536
复制相似问题