我们在用 Python Turtle 库绘制不同的形状时有一些乐趣,但是我们可以通过在程序中加入变量使绘制这些形状的函数更加有趣。例如,通过在画一个正方形时使用一个变量,我们可以控制乌龟在为正方形的每条边画线时移动的距离。这样,我们可以使用一个函数,通过利用变量,可以画出我们喜欢的任何大小的正方形。现在让我们看看如何做到这一点。
在 draw_square() 中加入一个变量
这个新的 draw_square() 函数现在有一个名为length 的新[变量]
def draw_square(length):
for i in range(4):
forward(length)
left(90)
这使得在调用 draw_square() 函数时可以传入一个数值,这样在绘制正方形时每条边都可以向前移动这个数值。我们可以通过调用 draw_square() 并传入 75 来测试这一点,这将使乌龟移动 75 像素。
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('arrow')
def draw_square(length):
for i in range(4):
forward(length)
left(90)
draw_square(75)
done()

绘制不同大小的正方形
现在有了变量的使用,我们可以很容易地画出不同大小的正方形。让我们测试一下绘制一个每边有150像素的正方形。
draw_square(150)

在定义一个函数时使用一个变量可以使函数更加灵活,因为可以改变函数的输出,而不必每次都更新函数本身。
设置一个默认长度
如果在调用 draw_square() 函数时没有传入长度变量的值,我们将得到一个错误。
Traceback (most recent call last):
File "C:\python\justhacking\testing.py", line 14, in <module>
draw_square()
TypeError: draw_square() missing 1 required positional argument: 'length'
为了避免这种可能的错误情况,让我们重新定义 draw_square() 函数,并在没有提供默认值的情况下使用它。我们将像这样把默认值设置为90。
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('arrow')
def draw_square(length=90):
for i in range(4):
forward(length)
left(90)
draw_square()
done()
现在,当draw_square()被调用时,不会显示错误,程序只是默认为绘制一个每边长度为90像素的正方形。下面的程序调用 draw_square() 函数 3 次。一次没有传递任何变量,两次有两个不同的数字值。
from turtle import *
drawing_area = Screen()
drawing_area.setup(width=750, height=500)
shape('arrow')
def draw_square(length=90):
for i in range(4):
forward(length)
left(90)
draw_square()
draw_square(150)
draw_square(200)
done()
结果是三个不同大小的正方形。

