在我目前正在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()
。)
有人可以向我解释为什么会这样吗?
答案 0 :(得分:3)
您在这里错过了亲密接触:
inputs.append([s for s in i.split(" ")]
^ opened here ^ oops, append paren never closed
通常,当一条明显的细线声称具有SyntaxError
时,问题几乎总是前一行的未封闭定界符对(通常是括号)。
答案 1 :(得分:1)
您没有关闭前一行(for .append()
)上的括号。 Python认为i = input()
是括号内[s for s in i.split(" ")]
的扩展,没有意义,因此您得到了SyntaxError
。