谁能解释为什么此代码返回“无效语法”错误?

时间:2020-01-15 02:22:12

标签: python python-3.x

在我目前正在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()。)

有人可以向我解释为什么会这样吗?

2 个答案:

答案 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