编写绘图函数时已定义变量仍报UnboundLocalError错误,求解析
解决UnboundLocalError:变量'y'未定义即引用的问题
错误原因
你代码里的第一个while y < 50:循环判断语句执行时,变量y还没有被赋值定义——y = -50是写在这个循环内部的,程序第一次执行循环条件检查时找不到y的取值,所以抛出UnboundLocalError。
另外你的循环逻辑还有两个明显问题:
x的初始化放在外层循环外,会导致第一次外层循环后x持续累加,不会重置到起始位置- 内层循环里
y -= 2会让y越来越小,永远达不到50,触发死循环
修正后的代码
def make_graph(): y = -50 while y < 50: x = -50 while x < 50: draw_point(win, x, y) x += 2 y += 2
修正说明
- 在第一个while循环前提前定义
y = -50,确保循环条件检查时变量已存在 - 将
x的初始化移到外层循环内部,保证每一行(固定y值)的x坐标都从起始点开始遍历 - 调整坐标递增方向:内层循环累加
x实现横向遍历,外层循环累加y实现纵向遍历,覆盖整个画布区域,同时避免死循环
内容的提问来源于stack exchange,提问作者45 Ishan Prajapati
相关产品推荐
相关产品推荐

