Skip to main content
 首页 » 编程设计

python之我怎样才能画出一堆正方形

2025年05月04日14sxdcgaq8080

我是 python 的新手。我需要为大学画这个形状,但我发现它真的很难,所以我在进入那个图像之前尝试做正方形。

无论如何这是我的问题:我怎样才能有 8 行? (1 行有 8 个正方形)我不能继续添加 def start_point1(): 这不是正确的方法。

#!/usr/bin/python 
 
import turtle as t 
import time 
 
def start_point(): 
    t.penup() 
    t.setpos(-200,-240) 
    t.pendown() 
 
def start_point1(): 
    t.penup() 
    t.setpos(-200,-180) 
    t.pendown() 
 
def draw_turtle(): 
    for a in range(4): 
        t.forward(60) 
        t.left(90) 
 
def draw_turtlerow(): 
    for a in range(8): 
        draw_turtle() 
        t.forward(60) 
 
 
 
def main(): 
    start_point() 
    draw_turtlerow() 
    start_point1() 
    draw_turtlerow() 

请您参考如下方法:

在这类问题中,您应该问自己什么是“原子”操作——一遍又一遍地重复——将生成完整的解决方案。您已经找到了基本的“原子”:绘制正方形的边:

t.forward(60) 

现在,下一个级别的“原子性”是什么?好吧,一边重复四次,你就可以得到一个正方形(正如你自己正确发现的那样)

for a in range(4): 
    t.forward(60) 
    t.left(90) 

现在沿着同样的思路,您可能会得出这样的结论:如果您将上述操作重复 8 次,您将得到一条线,如果您将一行重复 8 次,您将得到一个完整的棋盘。它应该是这样的:

for col in range(8): 
    for row in range(8): 
        # draw a square here 

现在,您已经自己编写了绘制正方形的函数,唯一的问题是您需要在不同的位置绘制每个正方形。这里你必须关注的关键点是:你能想出一种方法来从 col 和 row 的值开始计算这个位置吗?

如果您遇到困难,我发布了一个示例实现 here ,我相信您不需要检查,但如果您这样做了,这里有额外的任务:不要按原样使用该代码,而是将内圈转为调用单独的函数 draw_square(row, col)。

编辑:为了加分和自豪,完成练习后,观察棋盘上的大多数线条是如何一遍又一遍地重新绘制的。只需很少的努力,您就可以将程序的效率提高一倍。你能想到怎么做吗?

喂!