print 语句中的语法错误,但语法代码正确



如果我运行这段代码:

x, y, z, n = (int(input() for i in range(4))
print ([[a,b,c] for a in range(0,x+1)
for b in range(0,y+1) 
for c in range(0,z+1) if a + b + c != x])

我在打印语句(第 2 行)中收到语法错误,

但是如果我运行此代码:

x, y, z, n = int(input()), int(input()), int(input()), int(input())
print ([[a,b,c] for a in range(0,x+1) 
for b in range(0,y+1) 
for c in range(0,z+1) if a + b + c != n ])

它正在运行且没有错误。

无法理解语法缺少的内容,请帮助

您需要正确平衡第一行中的括号和方括号("违规"示例):

x, y, z, n = [int(input()) for i in range(4)]

这是一个列表理解,所以你需要把它放在 [] 中。此外,由于您希望xyzn中的整数值,因此您正确使用了int()构造函数,但未能在input()之后关闭括号。

更正后,它可以正常工作。

希望这有帮助。

最新更新