python - 使用两个加法运算符将两个整数相加在 python 中有效吗?

标签 python python-2.7 python-3.x operators

<分区>

我刚开始学习 python。我只是想玩打印功能。我最终编写了以下代码。

print(2 ++ 2)

我预计 Python 解释器会抛出错误,因为我将两个加法运算符并排放置,而没有在它们之间放置整数。相反,python 解释器没有抛出任何错误并返回 4 作为输出。 我还尝试了以下代码:-

print(4 -- 2)

输出为 6。

有人能给我解释一下吗?

最佳答案

2++ 2解释为:

2 ++ 2 == 2 + (+2)

因此您在 2+2 之间执行加法,其中第二个 + 因此是一元加号。如果您编写 2+++ 2,也会发生同样的情况:

2 +++ 2 == 2 + (+(+2))

对于 4 -- 2 情况,会发生类似的情况:

4 -- 2 == 4 - (-2)

所以您从 4 中减去 -2 得到 6

使用两个、三个(甚至更多)加法是不被禁止的,但是对于整数/ float 这只会导致更多的困惑,所以你最好不要这样做。

有些定义了它们自己的一元加号和一元减号运算符(例如Counter)。在这种情况下,++ 的行为可能与 + 不同。所以你最好不要使用 ++(如果你这样做,在两个 + 之间放置一个空格以明确表示第二个+ 是不同的运算符)。

由于存在一元加号和减号运算符,因此第一个 +- 之后的任何内容都被解释为一元。所以 2++--++- 2 将导致 0 因为:

2 ++--++- 2 == 2 + (+(-(-(+(+(-2))))))

关于python - 使用两个加法运算符将两个整数相加在 python 中有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483796/

相关文章:

python - 如何在 Python 中更改 Tor 身份?

python 2.6 异常.TypeError : unbound method _init_() ESMTP client instance

Python - 如何在应用程序在监听模式下具有 TCP 端口时即时重新启动应用程序?

numpy - 突出单条轮廓线

python - 检查字符串是否包含任意数量的数字后跟特定字母 [Python]

python - 反转数字三角形

python 类方法的装饰器

python - 在 Python 中,如何解析 3 个字节的第 11 位和第 12 位?

python - Python 的 'a+' 文件打开模式中的错误?

python - 如何使用 pyenv 安装 ipython qtconsole(Python 版本 3.4.2)