📜  数字时钟的turtule代码 - Python(1)

📅  最后修改于: 2023-12-03 15:26:06.030000             🧑  作者: Mango

数字时钟的turtule代码 - Python

这是一个使用Python的turtle模块创建数字时钟的示例代码。

1. 导入模块
import turtle
2. 创建窗口

我们需要创建一个turtle窗口来显示时钟。我们可以使用turtle的Screen()函数来创建窗口。

wn = turtle.Screen()
wn.bgcolor("black")
wn.setup(width=600,height=600)
wn.title("Digital Clock")

在这里,我们设置了窗口背景色为黑色,窗口宽度、高度为600,窗口标题为Digital Clock。

3. 创建指针

我们需要使用turtle的Turtle()函数来创建时、分、秒指针。我们可以使用turtle的pensize()函数来设置指针粗细,使用turtle的speed()函数来设置指针移动速度。

hour = turtle.Turtle()
hour.speed(0)
hour.pensize(6)

minute = turtle.Turtle()
minute.speed(0)
minute.pensize(4)

second = turtle.Turtle()
second.speed(0)
second.pensize(2)
4. 绘制刻度线和数字

我们使用turtle的penup()和pendown()函数来绘制刻度线和数字。我们也可以使用turtle的write()函数来写数字。

pen = turtle.Turtle()
pen.speed(0)
pen.pensize(3)
pen.penup()
pen.goto(0, 210)
pen.setheading(180)

for i in range(12):
    pen.pendown()
    pen.forward(60)
    pen.penup()
    pen.goto(0, 0)
    pen.right(30)
    pen.pendown()
    pen.write(str(i+1), align="center", font=("Courier", 24, "normal"))
    pen.penup()
    pen.goto(0, 210)
    pen.right(30)

在这里,我们创建了一个名为pen的turtle,使用速度为0,粗细为3,然后使用penup()函数将它移到(0,210)。我们使用setheading(180)函数设置它的方向为向左。

使用for循环绘制60度的直线,和写数字字母。

5. 计算时间

我们使用Python的time模块来获取当前时间。我们使用turtle的setheading()函数来设置时、分、秒指针的方向,并使用forward()函数来移动指针。

import time

while True:
    h = int(time.strftime("%I"))
    m = int(time.strftime("%M"))
    s = int(time.strftime("%S"))

    #时针转动的度数为每小时30度,每分钟0.5度
    hour.setheading(30 * h + m / 2)
    hour.pendown()
    hour.forward(100)
    hour.penup()
    hour.goto(0, 0)

    #分针转动的度数为每分钟6度
    minute.setheading(6 * m)
    minute.pendown()
    minute.forward(150)
    minute.penup()
    minute.goto(0, 0)

    #秒针转动的度数为每秒6度
    second.setheading(6 * s)
    second.pendown()
    second.forward(200)
    second.penup()
    second.goto(0, 0)

    time.sleep(1)

    hour.clear()
    minute.clear()
    second.clear()

在这里,我们导入了Python的time模块来获取当前时间。我们使用while循环来保持计时器运行,然后获取当前的小时、分钟和秒。

我们使用setheading()函数来设置时、分、秒指针的方向,然后使用forward()函数来移动指针。

我们使用sleep()函数来暂停程序一秒,清除旧指针时不存留。我们使用clear()函数来清除旧指针。

完整代码
import turtle
import time

wn = turtle.Screen()
wn.bgcolor("black")
wn.setup(width=600, height=600)
wn.title("Digital Clock")

hour = turtle.Turtle()
hour.speed(0)
hour.pensize(6)

minute = turtle.Turtle()
minute.speed(0)
minute.pensize(4)

second = turtle.Turtle()
second.speed(0)
second.pensize(2)

pen = turtle.Turtle()
pen.speed(0)
pen.pensize(3)
pen.penup()
pen.goto(0, 210)
pen.setheading(180)

for i in range(12):
    pen.pendown()
    pen.forward(60)
    pen.penup()
    pen.goto(0, 0)
    pen.right(30)
    pen.pendown()
    pen.write(str(i+1), align="center", font=("Courier", 24, "normal"))
    pen.penup()
    pen.goto(0, 210)
    pen.right(30)

while True:
    h = int(time.strftime("%I"))
    m = int(time.strftime("%M"))
    s = int(time.strftime("%S"))

    hour.setheading(30 * h + m / 2)
    hour.pendown()
    hour.forward(100)
    hour.penup()
    hour.goto(0, 0)

    minute.setheading(6 * m)
    minute.pendown()
    minute.forward(150)
    minute.penup()
    minute.goto(0, 0)

    second.setheading(6 * s)
    second.pendown()
    second.forward(200)
    second.penup()
    second.goto(0, 0)

    time.sleep(1)

    hour.clear()
    minute.clear()
    second.clear()

这是一个简单的数字时钟turtle代码,可以轻松创建数字时钟,只需要一些Python基础知识即可。它可以用作初学者的练习项目。