Python Turtle窗口闪退及24次六边形绘制异常解决求助
问题分析与修复方案
我帮你找出代码里的几个关键问题,修复后就能按预期完成绘图并保持窗口打开啦:
1. 函数未执行
你定义了Hexagon()函数,但最后只写了Hexagon(没有加括号)——这只是引用了函数对象,并没有真正调用它执行绘图逻辑。必须改成Hexagon()才会触发函数运行。
2. 全局变量访问错误
Hex_Count是在函数外部定义的全局变量,在函数内部直接修改它时,Python会默认把它当成局部变量处理,导致UnboundLocalError报错。需要在函数内部用global Hex_Count声明,明确告诉Python我们要操作的是全局作用域下的这个变量。
3. 窗口自动关闭问题
Turtle程序执行完所有代码后,默认会立刻关闭绘图窗口。要让窗口保持打开状态,需要在代码最后添加turtle.done()(窗口会一直保持,直到手动关闭),或者turtle.exitonclick()(点击窗口后才会关闭)。
修复后的完整代码
import turtle Hex_Count = 0 x = turtle.Turtle() x.speed(.25) def Hexagon(): global Hex_Count # 声明要操作全局变量 for i in range(24): # 绘制单个六边形 for _ in range(6): x.forward(100) x.left(60) Hex_Count += 1 x.left(15) print(Hex_Count) Hexagon() # 调用函数执行绘图 turtle.done() # 保持窗口打开
额外小优化
内层循环的变量名我改成了_,这是Python里的惯例——当我们不需要使用循环变量的具体值,只是用来控制循环次数时,用_会让代码可读性更强。
内容的提问来源于stack exchange,提问作者M. Ayo
相关产品推荐
相关产品推荐

