'+ ='和'= +'之间的区别? [重复]

问题描述 投票:8回答:5

这个问题在这里已有答案:

所以我有一段简单的代码打印出整数1-10:

i = 0
while i < 10:
        i += 1
        print(i)

然后,如果您只是在第3行更改一个运算符,它会打印出无限量的1个整数(我明白为什么会这样做)。为什么运行第二个程序时不会出现语法错误?如果赋值运算符后跟一个加法运算符,它会不会调用语法错误?

i = 0
while i < 10:
        i =+ 1
        print(i)
python operator-keyword
5个回答
26
投票

i+=1i=i+1相同,而i=+1仅仅意味着i=(+1)


5
投票

标记符通常不需要空格,除非有必要消除歧义(例如,您需要在变量名和语言关键字之间使用某种形式的空格或标点符号,以便可以识别关键字)。

因此,x=+yx =+ yx = +y都是等价的,在所有情况下都援引+上的一元y算子并分配给x。一元加运算符并不常用,但仅仅因为它并不常见并不意味着它不被识别和接受。

为了比较,C / C ++等中的-->“运算符”是another example where humans looking for spaces and tokenizers ignoring them causes confusion


2
投票

i =+ 1i = +1i = 1相同。


1
投票

x=+1被视为:x=(+1)x+=1被视为:x=x+1

有二元运算符在它们的左侧操作数和它们的右侧操作数上操作(例如*乘法)。 并且有一元运算符仅采用右侧操作数(例如〜/!否定)。有些运算符可以是一元和二元的。

python中的加号也可以用作右侧操作符,就像减号一样。

Python文档:

一元 - (减号)运算符产生其数字参数的否定。

一元+(加号)运算符使其数字参数保持不变。


0
投票

没有语法错误,因为表达式i =+ 1i = (+1)相同,而+1完全合法。它是一元运算符,而不是加法运算符。

© www.soinside.com 2019 - 2024. All rights reserved.