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

如何给函数传递参数?turtle绘制填充正方形无效果怎么解决

问题原因

你的代码存在两个核心错误,直接导致填充失效、绘制效果不符合预期:

  • 缩进错误:draw_filled_square 函数中的 turtle.end_fill() 没有正确缩进,不属于函数内部代码,调用函数时只会执行填充开始逻辑,不会触发填充结束逻辑,因此无法完成图形填充。
  • 绘制位置重复:两次调用draw_filled_square时海龟的初始位置完全相同,两个正方形完全重叠,即便填充功能正常也只能看到最后绘制的绿色正方形。
修正后的可运行代码
import turtle

def main():
    print("Project 1 by Amanda Basant")

main()

def draw_filled_square(turtle,size,color):
    turtle.fillcolor(color) 
    turtle.begin_fill()
    for i in range(4):
        turtle.forward(size)
        turtle.left(90)
    # 修正缩进:将end_fill放到函数内部,绘制完正方形后结束填充
    turtle.end_fill()

def draw_picture():
    window = turtle.Screen()
    amanda = turtle.Turtle()
    amanda.up()
    amanda.goto(0,0)
    amanda.down()

    draw_filled_square(amanda,300,"blue")
    # 绘制第二个正方形前移动海龟位置,避免重叠,可根据你的需求调整坐标数值
    amanda.up()
    amanda.goto(300,0)
    amanda.down()
    draw_filled_square(amanda,300,"green")
    # 保持绘图窗口不自动关闭
    turtle.done()

draw_picture()
补充说明

如果需要调整两个正方形的相对位置,只需要修改第二次调用draw_filled_square前goto()方法的坐标参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:57:04