为什么2----1 = 3?

时间:2019-03-06 16:39:29

标签: python

我最近在使用python(v3.6.8)和pandas(v0.23.4)时遇到了一个错误,其中我尝试减去日期偏移量。但是,我不小心键入了两个--符号,结果却添加了日期偏移量。我做了更多的实验,发现2--1将返回3。这是有道理的,因为您可以将其解释为2-(-1),但是您可以走得更远,将一堆负数串在一起2----1将返回3。我也在R中复制了此代码,并且它执行相同的操作。谁能帮助我了解这里的情况?

4 个答案:

答案 0 :(得分:5)

2----1与2-(-(-(---1)))相同

2-(-(1))= 2 +1 = 3

只要减号实际上是“ +”。

答案 1 :(得分:3)

由于每次都会取反,所以偶数个-符号将等效于单个+号,奇数个数量与-符号等效。

2---1

求值为1和

2----1

将计算为3

答案 2 :(得分:2)

从数学上讲,这是正确的。为什么编程语言会允许呢?也许我只是缺乏想像力,但我想不出任何理由来明确地将加号或减号串在一起。并且如果您 did 这样做,很可能是原始帖子中的错字。如果是通过变量完成的,那么绝对应该允许它(即a = -1; 2 -a应该为3)。一些语言允许i ++递增i。和python允许i + = 1递增i。即使在数学上正确,也不会抛出语法错误对我来说似乎令人困惑。

答案 3 :(得分:0)

就像一些数学老师说的那样,“轰!”

您实际上正在做的是加2 + 1。

在数学中,当两个减号彼此相邻时,它们会结合在一起形成加号。至少那是他们在学校教给我的。

实际上,它更像这样,

2 + + 1

每个人都知道2 +1 = 3

(欢迎使用Stack Overflow!)