使用turtle实现一个九九乘法表

281 阅读1分钟

第一版版本

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 ,这会使数字之间的间距更大。运行修改后的代码,可以得到一个包含九九乘法表所有数字的图形。