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

Python Turtle库绘图问题:如何利用元组列表绘制带X的房子

问题解决思路

核心问题1:代码执行顺序错误

你的main()函数里,wn.mainloop()被放在了定义列表和调用绘图函数之前。mainloop()是turtle的事件循环,会阻塞后续代码执行,导致后面的ls定义和drawhouse(t, ls)根本不会运行。必须把wn.mainloop()移到所有绘图代码之后。

核心问题2:绘图函数的无效代码

drawhouse函数里第一行fwd, lt = ls是错误的,ls是包含多个元组的列表,不能直接解包成单个元组的两个值,这行代码多余且会引发ValueError,直接删掉即可。

修正后的完整代码

def drawhouse(t, ls):
    for fwd, lt in ls:
        t.forward(fwd)
        t.left(lt)


def main():
    import turtle
    wn = turtle.Screen()
    t = turtle.Turtle()
    wn.bgcolor("Cyan")
    wn.title("Drawing a house")
    # 先定义列表并调用绘图函数
    ls = [(100, 90), (100, 90), (100, 240), (100, 240),
          (100, 285), (140, 225), (100, 225), (100, 0)]
    drawhouse(t, ls)
    # 最后启动事件循环
    wn.mainloop()


main()

额外调整建议(可选)

如果绘制出的图形和预期的「内部带X的房子」有偏差,可以微调ls里的参数:

  • 房子主体是矩形,需要4组(边长, 90)的元组,你当前的前两个元组是矩形的两条边,后续转向角度可以再核对
  • 内部X的对角线长度可以用勾股定理计算(100*√2≈141.42),你用的140可以微调成更精确的值,让X的端点刚好落在房子的对角上

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:24:21