首页 > 解决方案 > 不明白为什么在列表理解中会出现 UnboundLocalError

问题描述

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

上述程序显示“UnboundLocalError: local variable 'y' referenced before assignment”错误

标签: pythonpython-3.x

解决方案


列表推导中的x,yz隐藏了先前定义的变量。您可以使用不同的名称来避免这种隐藏:

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

推荐阅读