python – 无效语法(对于循环括号/括号)
发布时间:2020-12-20 11:50:50 所属栏目:Python 来源:网络整理
导读:以下代码行输出SyntaxError:无效语法 for (i in range(-WIDTH,WIDTH)): 下一个工作没有错误.我不知道这里应该是什么语法错误.所以我只是出于好奇而问.我猜测括号会阻止表达式的评估. for i in range(-WIDTH,WIDTH): 解决方法 你的括号基本上只是混淆了解析
以下代码行输出SyntaxError:无效语法
for (i in range(-WIDTH,WIDTH)): 下一个工作没有错误.我不知道这里应该是什么语法错误.所以我只是出于好奇而问.我猜测括号会阻止表达式的评估. for i in range(-WIDTH,WIDTH): 解决方法
你的括号基本上只是混淆了解析器.
有一些原因你可以在for之后有一个开放的paren,最值得注意的是使用元组解包: >>> for (x,y) in zip(range(5),range(6,11)): ... print(x,'->',y) ... 0 -> 6 1 -> 7 2 -> 8 3 -> 9 4 -> 10 此外,可以在Python的大量地方使用parens进行简单分组,例如分解长行时: >>> s = ("This is " ... "a really awkward way " ... "to write a " ... "long string " ... "over several lines") >>> >>> s 'This is a really awkward way to write a long string over several lines' 所以解析器不会真的抱怨它. 但是,如您所知,对于supposed to read like this: for_stmt ::= "for" target_list "in" expression_list ":" suite ["else" ":" suite] 这意味着通过这种方式分组,您构建了一个无效循环.从本质上讲,你的内容是因为它被括号括起来归入target_list.希望这是有道理的. 一种更清楚地了解正在发生的事情的方法:在关闭paren之后写下for循环的其余部分(在expression_list中).然后,您将更清楚地了解它是如何解释此声明的. >>> for (i in range(-WIDTH,WIDTH)) in range(-WIDTH,WIDTH): ... print(i) ... File "<stdin>",line 1 SyntaxError: can't assign to comparison 所以它会让你这样做,但y中x的结果将是一个布尔值,它不能作为赋值的目标.你得到的原始错误是因为它找到了你的:在它找到你的之前,这是一个简单的旧的无效语法,就像你刚写的x:. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |