为何turtle未绘制完整正方形?如何调整实现正确绘制
为什么Python Turtle代码无法绘制完整正方形?如何修复?
问题场景
运行以下Python Turtle代码时,仅绘制了一条边并完成右转,无法得到完整正方形:
import turtle def draw_square(): window = turtle.Screen() window.bgcolor("red") brad = turtle.Turtle() brad.shape("turtle") brad.color("yellow") brad.speed(2) brad.forward(100) brad.right(90) window.exitonclick() draw_square()
当前效果:
问题原因
正方形由4条等长边组成,每条边对应一次「前进100像素+右转90度」的操作,但现有代码只执行了1次该操作,仅能画出一条边,无法形成闭合的正方形。
修复方案
需要让「前进+右转」的操作重复执行4次,以下是两种实现方式:
方式1:直接重复代码(直观但冗余)
将brad.forward(100)和brad.right(90)复制3次,累计执行4次:
import turtle def draw_square(): window = turtle.Screen() window.bgcolor("red") brad = turtle.Turtle() brad.shape("turtle") brad.color("yellow") brad.speed(2) # 重复4次前进+右转操作 brad.forward(100) brad.right(90) brad.forward(100) brad.right(90) brad.forward(100) brad.right(90) brad.forward(100) brad.right(90) window.exitonclick() draw_square()
方式2:使用for循环(简洁高效)
利用Python的for循环重复执行操作,代码更简洁,也便于后续修改边数:
import turtle def draw_square(): window = turtle.Screen() window.bgcolor("red") brad = turtle.Turtle() brad.shape("turtle") brad.color("yellow") brad.speed(2) # 循环4次完成正方形绘制 for _ in range(4): brad.forward(100) brad.right(90) window.exitonclick() draw_square()
内容的提问来源于stack exchange,提问作者Julius San Jose
相关产品推荐
相关产品推荐

