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

如何用for range循环逐次降低函数参数值(海龟绘图场景)

解决Python循环中递减函数参数的问题

嘿,我明白你想实现的效果——每次循环调用myhouse时,房子的尺寸依次是初始值的100%、80%、60%。现在你的代码里每次都把housesize乘以0.8,这样三次迭代用的都是初始值的80%,显然不符合预期。咱们来调整一下:

核心思路

根据循环的索引i来计算每次的缩放比例:

  • 第1次循环(i=0):比例为1.0(100%)
  • 第2次循环(i=1):比例为0.8(80%)
  • 第3次循环(i=2):比例为0.6(60%)

这个比例可以用公式1.0 - 0.2 * i来生成,每次迭代递减0.2(也就是20%)。

修改后的代码

def scene(housesize):
    for i in range(3):
        # 根据循环索引计算当前的房子尺寸比例
        scale = 1.0 - 0.2 * i
        hs = housesize * scale
        myhouse(hanzi, hs)
        # 移动画笔到下一个房子的位置(可按需调整偏移量)
        hanzi.pu()
        hanzi.goto(hanzi.xcor() + 150, hanzi.ycor())  # 相对移动比固定坐标更灵活
        hanzi.pd()

scene(100)

改动点说明

  1. 比例计算:用1.0 - 0.2 * i替代固定的0.8,确保每次迭代的尺寸按预期递减
  2. 位置优化:把固定的goto(200,20)改成相对当前位置移动,避免所有房子堆在同一位置
  3. 可读性提升:新增scale变量,让尺寸计算的逻辑更直观,后续调整递减幅度也更方便

如果之后你想修改递减幅度(比如每次减10%),只需要把0.2改成0.1;如果想增加循环次数,直接修改range()里的数字,比例会自动适配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:42:58