第一版版本
import turtle
# 设置画笔速度
turtle.speed(0)
# 绘制九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
# 计算数字和位置
num = i * j
x = -200 + 50 * (j - 1)
y = 200 - 50 * (i - 1)
# 移动画笔
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
# 绘制数字
turtle.write(str(j) + "x" + str(i) + "=" + str(num),
font=("Arial", 12, "normal"))
# 隐藏画笔
turtle.hideturtle()
# 显示窗口
turtle.done()
代码中,首先使用 speed 函数设置画笔的速度。然后,使用两个 for 循环依次绘制乘法表中的数字和对应的位置。在每次绘制之前,需要先使用 penup 函数将画笔抬起,然后使用 goto 函数移动画笔到指定的位置,再使用 pendown 函数将画笔落下,开始绘制数字。绘制完成后,使用 hideturtle 函数隐藏画笔,并使用 done 函数显示窗口。
运行上述代码,可以得到一个包含九九乘法表所有数字的图形。
实现效果为 数字与数字之间有一些重叠
第二版代码为:
import turtle
# 设置画笔速度
turtle.speed(0)
# 绘制九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
# 计算数字和位置
num = i * j
x = -250 + 60 * (j - 1)
y = 250 - 60 * (i - 1)
# 移动画笔
turtle.penup()
turtle.goto(x, y)
turtle.pendown()
# 绘制数字
turtle.write(str(j) + "x" + str(i) + "=" + str(num),
font=("Arial", 12, "normal"))
# 隐藏画笔
turtle.hideturtle()
# 显示窗口
turtle.done()
在修改后的代码中,将 x 和 y 的增量分别改为了 60 ,这会使数字之间的间距更大。运行修改后的代码,可以得到一个包含九九乘法表所有数字的图形。