<分区>
我刚开始学习 python。我只是想玩打印功能。我最终编写了以下代码。
print(2 ++ 2)
我预计 Python 解释器会抛出错误,因为我将两个加法运算符并排放置,而没有在它们之间放置整数。相反,python 解释器没有抛出任何错误并返回 4 作为输出。 我还尝试了以下代码:-
print(4 -- 2)
输出为 6。
有人能给我解释一下吗?
<分区>
我刚开始学习 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/