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

为何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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 23:21:02