VS Code运行Python Turtle代码无报错但不弹出图形窗口如何解决
问题原因与修复方案
你的代码无法弹出Turtle图形窗口的核心原因是存在无限递归调用,同时存在多处缩进错误和执行顺序错误:
draw_art()函数内部自行调用自身,触发无限嵌套执行,永远无法运行到触发窗口渲染、等待点击退出的逻辑- 控制angie绘制螺旋的
size += 1缩进错误,仅会执行1次,无法实现螺旋步长递增效果 - 画布初始化、绘制函数调用、窗口等待逻辑都被错误放在
draw_art()内部,执行逻辑完全混乱
修复后可运行代码
from turtle import Turtle, Screen def draw_square(some_turtle): for _ in range(4): some_turtle.forward(200) some_turtle.right(90) def draw_art(): brad = Turtle(shape="turtle") brad.color("yellow") brad.pensize(2) brad.speed(0) for _ in range(36): draw_square(brad) brad.right(10) # Turtle Angie angie = Turtle(shape="turtle") angie.color("blue") angie.pensize(2) angie.speed(0) size = 1 for _ in range(300): angie.forward(size) angie.right(91) size += 1 # 全局执行逻辑 window = Screen() window.bgcolor("black") draw_art() window.exitonclick()
核心修改点
- 移除
draw_art()内部的自调用代码,解除无限递归 - 调整
angie.right(91)和size += 1的缩进,放入for循环内部,实现正确的螺旋绘制效果 - 将画布初始化、背景色设置、绘制函数调用、窗口点击退出逻辑全部移到全局作用域,保证执行顺序正确
内容的提问来源于stack exchange,提问作者Pratibha Bade
相关产品推荐
相关产品推荐

