Python turtle库绘制一排房屋代码运行时画笔无移动问题排查
核心故障原因
画笔完全没有移动和文件体积、代码量无关,是代码逻辑错误导致绘制循环完全没有执行:
- 你在
house_street函数中使用size/400计算待绘制的房屋总数,当传入参数size=50时,计算结果为0.125,转换为整数后值为0,for循环直接跳过,没有运行任何绘制代码。 - 即使修复数量计算逻辑,原代码每次调用
house都传入固定坐标(-200, 0),所有房屋会重叠在同一位置,无法形成一排的效果。 - 原
house函数每次执行都会调用pen.left(180),多次调用后画笔方向会持续偏移,导致后续绘制的图形变形。
修复后可运行代码
调整了房屋数量、定位、方向控制逻辑,可实现指定数量的房屋并排绘制效果:
import turtle as pen pen.speed(-1) def triangle(side_length): for i in range(3): pen.forward(side_length) pen.right(120) def square(side_length): for i in range(4): pen.forward(side_length) pen.left(90) def house(side_length1, pos1, pos2): pen.up() pen.goto(pos1, pos2) pen.down() # 固定画笔初始方向,避免多次调用产生的方向偏移 pen.setheading(0) square(side_length1) # 移动到屋顶起始绘制位置 pen.left(90) pen.forward(side_length1) pen.right(90) triangle(side_length1) def house_street(house_size, house_count): current_x = -200 for _ in range(house_count): house(house_size, current_x, 0) # 绘制完一个房屋后向右偏移,预留间隙 current_x += house_size + 20 # 示例:绘制6个边长为50的房屋 house_street(50, 6) pen.done()
内容的提问来源于stack exchange,提问作者victini jr
相关产品推荐
相关产品推荐

