首页 > 解决方案 > 任何人都可以为什么此代码返回“无效语法”错误吗?

问题描述

在我目前在 Python 3 中做的一个项目中,我必须做的任务之一是接受多行输入并将其放入一个列表中,每一行输入本身都在列表中(我分隔不同输入的方式;我格式化稍后将它们放入所需的数据类型中,但这超出了此问题的范围);我使用以下代码实现了这一点:

inputs = []
i = input()
while i != '':
  inputs.append([s for s in i.split(" ")] 
  i = input()
# example for this code:
# An input such as
# "3 7 5 9
# 2 4 6 8
# 2 1 4 5"
# would end up with inputs = [["3", "7", "5", "9"], ["2", "4", "6", "8"], ["2", "1", "4", "5"]]

当我完整运行代码时,我得到了错误:( line 38 i = input() ^ SyntaxError: invalid syntax指的i = input()是循环内部。)

谁能向我解释为什么会发生这种情况?

标签: pythonpython-3.x

解决方案


你在这里错过了一个密切的括号:

inputs.append([s for s in i.split(" ")] 
             ^ opened here             ^ oops, append paren never closed

通常,当一条明显很细的行声称具有SyntaxError时,问题几乎总是前一行上的未闭合分隔符对(通常是括号)。


推荐阅读