python - 不明白为什么在列表理解中会出现 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”错误
解决方案
列表推导中的x
,y
和z
隐藏了先前定义的变量。您可以使用不同的名称来避免这种隐藏:
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])
推荐阅读
- c - '*' 的操作数必须是 c 中的指针错误
- javascript - 无法使用 express.js node.js 发布到我的数据库 mySQLWorkBench
- typescript - 进行属性访问后联合缩小中断
- c - OpenMP 中的#pragma 用于什么?
- javascript - 刷新浏览器时如何更正选择的功能选项?
- c++ - 带有目录树 zlib 构建错误的 libpng
- python - 如何使用 PYCHARM 社区版调试 Django 应用程序
- sql - 在 Sql 中,对 Column 进行分组,但不显示在所有行中
- swift - Swift 多个#available 检查 2 个版本的 SDK 中的错误
- php - 无法获取资产以服务于 ingress-nginx 后面的遗留 PHP 应用程序