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

Python使用turtle库绘制逐增堆叠三角形的代码问题咨询

问题分析与优化方案

现有代码的核心问题

  • 代码冗余:绘制单三角形的逻辑重复编写了3次forward(trisize)+left(120)的语句,没有复用逻辑,也不符合需求中「添加第二个循环」的要求
  • 定位逻辑错误:绘制完单个三角形后的移动坐标计算有误,无法实现三角形垂直上下堆叠的效果,实际运行后会出现三角形横向偏移、间距混乱的问题
  • 移动步长不匹配:固定的20像素向上移动步长,没有和每次增加的三角形边长做适配,三角形尺寸变大后会出现重叠或者间距过大的问题

第二个循环的添加位置

第二个循环是用来简化单个三角形的绘制逻辑的,直接替换掉外层循环里手动绘制三条边的重复代码即可,放在外层的for triangles in range(1,5):循环内部、开始绘制当前三角形的位置。

修正后的参考代码

from turtle import *
# 初始三角形边长
trisize = 80
# 外层循环:控制绘制4个三角形
for triangles in range(4):
    # 内层新增的第二个循环:绘制单个三角形的三条边
    for _ in range(3):
        forward(trisize)
        left(120)
    # 移动到下一个三角形的绘制起点:垂直向上移动,适配当前三角形高度
    penup()
    # 正三角形的高度为(√3/2)*边长,额外加10像素保留三角形之间的间距
    left(90)
    forward(trisize * 0.866 + 10)
    right(90)
    pendown()
    # 边长逐次增加20
    trisize += 20
done()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:27:03