You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:06:06