我是一个蟒蛇新手并且有一个问题。为什么一个if允许括号而不是for。
if (1==2):
for (i in range(1,10)):
while (i<10):
第一个和第三个是有效的语法,但不是第二个。
File "<stdin>", line 2
for (i in range(1,10)):
^
答案 0 :(得分:7)
因为for (i in range(1,10))
在句法上不正确。
假设无论如何都会解析(i in range(1,10))
,它会返回一个布尔值。那么你就是在尝试说for True
或for False
,并且不能对布尔值进行迭代,而且它的语法无效。
你的其他例子工作的原因是因为他们期望一个布尔值,这是从1 == 2
和i < 10
答案 1 :(得分:1)
if
需要一个True
False
的值。您可以在任何值周围加上括号:(1) + (1)
for VAR in LIST
是一种固定语法,它不会期望值为单值,而是两个输入:
那么为什么Python语言允许使用额外的括号?
有人指出现在已删除的答案(为什么?),这是for
语句的语法:http://docs.python.org/3/reference/compound_stmts.html#the-for-statement:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]