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

Python Turtle绘图:for循环绘制5个中心嵌套正方形的问题求助

解决中心嵌套正方形的绘制问题

先梳理你代码里的核心问题:

  • 内层循环结束后j的值固定为3,导致x += length[j]每次都加80,边长增长逻辑完全错误
  • 当前的forward(20)移动方式无法让正方形中心对齐,嵌套的关键是所有正方形的中心必须重合

修正思路

要实现中心嵌套,每个正方形的起始位置需要根据边长计算:假设正方形边长为size,起始坐标应为(-size/2, -size/2)——从这个点出发,向右、向上、向左、向下各走size长度,最终正方形的中心会精准落在原点(0,0)。

修正后的代码

import turtle

scrn = turtle.Screen()
scrn.screensize(500, 500)
scrn.bgcolor('green')
mike = turtle.Turtle()
mike.shape('turtle')
mike.color('pink')
# 调慢画笔速度,方便观察绘制过程
mike.speed(2)

# 定义5个正方形的边长,从小到大排列
lengths = [20, 40, 60, 80, 100]

for size in lengths:
    # 抬笔移动到当前正方形的起始位置
    mike.penup()
    mike.goto(-size/2, -size/2)
    mike.pendown()
    
    # 绘制正方形
    for _ in range(4):
        mike.forward(size)
        mike.left(90)

turtle.Screen().exitonclick()

关键细节说明

  1. 中心对齐核心:goto(-size/2, -size/2)确保每个正方形的中心都在原点,实现完美嵌套
  2. 简化循环逻辑:直接遍历边长列表,不需要额外的x变量,代码更直观
  3. 可选扩展:如果想从大到小绘制(外层大正方形、内层小正方形),只需把lengths改成[100, 80, 60, 40, 20]即可

内容的提问来源于stack exchange,提问作者Louis Sypeck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 19:32:14