python对额外括号敏感?

时间:2017-11-12 08:15:22

标签: python syntax-error python-2.6 parentheses

此代码段工作正常

if True: print "just True"
if (True): print "(True)"

正在研究循环,这些工作正常

for i in range(1, 3):
    print i

i = 0
while i < 3: # without paranthesis
    print i
    i = i + 1

i = 0
while (i < 3): # with paranthesis
    print i
    i = i + 1

当我尝试

for (i in range(1, 3)):
    print i

我收到错误&#34;语法错误:语法无效&#34;

我明白外面的括号是让循环变得疯狂(错误)但是我违反了这部分语法?它在while循环中运行良好

2 个答案:

答案 0 :(得分:5)

<{1}}的语法是(简化)

for

more precisely

for <variable(s)> in <expression>

由于您使用for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite] 括号,因此语法无效。

<variable> in <expression>for必须出现在相同的嵌套级别。

<{1}}的语法很多simpler

in
因此,

允许使用括号,但在Python中不是必需的

答案 1 :(得分:2)

你不能在任何你想要的地方加注额外的括号。通常声明的while语法是:

while <condition>:

在这里,你只是围绕一个带括号的条件,这很好,就像你看到的那样。 for循环的语法是:

for <variable> in <expression>:

您可以在括号中包围expression,但不能包含语法的任意部分。