所以我有一段简单的代码打印出整数1-10:
i = 0
while i < 10:
i += 1
print(i)
然后,如果您只是在第3行更改一个运算符,它会打印出无限量的1个整数(我明白为什么会这样做)。为什么运行第二个程序时没有出现语法错误?如果赋值运算符后跟一个加法运算符,它是否会调用语法错误?
i = 0
while i < 10:
i =+ 1
print(i)
答案 0 :(得分:26)
i+=1
与i=i+1
相同,而
i=+1
仅表示i=(+1)
。
答案 1 :(得分:5)
标记符通常不需要空格,除非有必要消除歧义(例如,您需要在变量名和语言关键字之间使用空格或某种形式的标点符号,以便可以识别关键字。)
因此,x=+y
,x =+ y
和x = +y
都是等效的,在所有情况下都会调用+
上的一元y
运算符并分配给{{1 }}。一元加运算符并不常用,但仅仅因为它不常见并不意味着它不被识别和接受。
为了进行比较,C / C ++等中的x
“运算符”为another example where humans looking for spaces and tokenizers ignoring them causes confusion。
答案 2 :(得分:2)
i =+ 1
与i = +1
或i = 1
相同。
答案 3 :(得分:1)
x=+1
被视为:x=(+1)
x+=1
被视为:x=x+1
有二元运算符在左侧操作数和右侧操作数上运行(例如*乘法)。
并且有一元运算符只采用右侧操作数(例如〜/!否定)。
有些运算符可以是一元和二元的。
python中的加号也可以用作右侧操作符,就像减号一样。
Python文档:
一元 - (减号)运算符产生其数字的否定 参数。
一元+(加号)运算符使其数字参数保持不变。
答案 4 :(得分:0)
没有语法错误,因为表达式i =+ 1
与i = (+1)
相同而+1
完全合法。它是一元运算符,而不是加法运算符。