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

时间:2018-02-11 08:05:32

标签: python python-3.x

如果我运行此代码:

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])

我在print语句中遇到语法错误(第二行),但如果我运行此代码:

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 ])

它正在运行而没有错误。

1 个答案:

答案 0 :(得分:1)

您需要在第一行(“冒犯”示例)中正确平衡括号和方括号:

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

这是一个列表理解,所以你需要将它放在[]中。此外,由于您需要 x y z n 中的整数值,因此您正在使用{ {1}}构造函数,但未能在int()之后关闭括号。

经过更正,它可以毫无故障地工作。

希望这有帮助。