如果我运行此代码:
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 ])
它正在运行而没有错误。
答案 0 :(得分:1)
您需要在第一行(“冒犯”示例)中正确平衡括号和方括号:
x, y, z, n = [int(input()) for i in range(4)]
这是一个列表理解,所以你需要将它放在[]中。此外,由于您需要 x , y , z 和 n 中的整数值,因此您正在使用{ {1}}构造函数,但未能在int()
之后关闭括号。
经过更正,它可以毫无故障地工作。
希望这有帮助。