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