龟图形:重复平方问题

时间:2018-11-03 16:43:04

标签: python

在这段代码中,我假设在一个正方形内重复一个100正方形。

import turtle

num_squares = 100

turtle.pendown()
side = side_unit = 5



for sq in range(1, num_squares + 1):
    turtle.left(90)
    turtle.forward(side)
    turtle.left(90)
    turtle.forward(side)
    turtle.left(90)
    turtle.forward(side)
    turtle.left(90)
    side = side_unit + 3 * sq 

    turtle.goto(0,0)                

turtle.done()

我可以使用它,但是我很难理解为什么它适用于生产线:

side = side_unit + 3 * sq

为什么将side_unit + 3 * sq乘以一个新的正方形?

1 个答案:

答案 0 :(得分:0)

为了使理解更简单,我将定义一个用于绘制单个正方形的函数。

def draw_square(side_length):
    """ Draw a square with given side length and return to origin """
    for i in range(3):
        turtle.left(90)
        turtle.forward(side_length)
    turtle.left(90)
    turtle.goto(0, 0)

简化了循环:

for sq in range(1, num_squares + 1):
    draw_square(side)
    side = side_unit + 3 * sq

每个循环绘制一个边长为side的正方形。由于sq每次循环迭代都会增加1,因此side_unit + 3 * sq每次迭代都会增加3。您为此设置了side(即正方形的边长),这意味着正方形的边长将在每次迭代中增加3。