首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中对操作符及其行为进行分类?

如何在Python中对操作符及其行为进行分类?
EN

Stack Overflow用户
提问于 2019-07-14 17:12:44
回答 1查看 102关注 0票数 0

我正在研究Python中的运算符,并在表达式中有多个运算符时,遇到了决定计算顺序的多个概念。

我理解运算符优先的概念,并在Python中遇到了运算符优先表。有几件事让我困惑,

  • 为什么赋值和增广分配运算符不包括在列表中?
  • 在Python中,什么才是运算符?(操作符和关键字之间是否有任何区别)。

后一个问题源于我在互联网上所读到的对操作符的分类,它们将操作符分为以下几类

  • 算术算子
  • 比较算子
  • 赋值算子
  • 逻辑运算符
  • 位算子
  • 成员算子
  • 身份算子

但是,当我在Python文档中的操作符优先级表中看到诸如lambdaif-else这样的关键字时,我感到很困惑。此外,操作符模块文档中的运算符映射表还包括诸如del这样的关键字,这些关键字既不是internet上常见分类的一部分,也不是Python中的优先级表。

我的最后一个问题是,“对于

Python中操作符的类别及其行为(优先级、链结、结合性等)?还是我应该独立研究每一个操作者及其行为?“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-14 18:17:50

为什么赋值和增广分配运算符不包括在列表中?

因为他们不是真正的运营者。我们有时为了方便而称它们为运算符,但它们不能形成表达式,因此相对于实际运算符没有优先权。

在Python中,什么才是运算符?(操作符和关键字之间是否有任何区别)。

根据运算符上的文档,它似乎是任何可以形成表达式的标点符号。为了简单起见,我倾向于将运算符定义为可以形成表达式的任何标点符号或关键字。

但是当我在Python文档中的操作符优先级表中看到诸如lambdaif-else这样的关键字时,我感到很困惑。

这些关键字可以形成表达式,因此它们必须具有运算符优先。请注意,if-else可以是表达式或块语句,具体取决于语法:

代码语言:javascript
复制
# Expression
a if condition else b

# Statement
if condition:
    pass
else:
    pass

此外,操作符模块文档中的操作符映射表还包括关键字,比如del,它们既不是internet上常见分类的一部分,也不是Python中的优先级表。

del不是运算符,因为它只用于获得副作用.但是,它可能会修改一个合适的对象,因此在operator库中包含一个功能也是有意义的。del的另一个用途是删除一个变量,这是函数无法做到的。

我的最后一个问题是“对于Python中操作符的类别及其行为(优先级、链结、结合性等)是否可以进行分组?还是应该独立研究每个操作符及其行为?”

运算符总是可以组合成更大的表达式,因此它们必须具有优先级和结合性来定义非平凡表达式的意义。非运算符语法通常形成一条语句或一组语句.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57029536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档