一、使用turtle模块显示时钟表盘
turtle是Python自带的一个图形库,可以用于在绘图窗口中绘制图形。我们可以使用turtle模块绘制一个时钟表盘,然后在表盘上显示时间。
import turtle import time # 绘制时钟表盘 def draw_clock(radius): # 绘制表盘的外圆 turtle.pensize(7) turtle.color("black") turtle.penup() turtle.goto(0, -radius) turtle.pendown() turtle.circle(radius) # 绘制表盘上的刻度 turtle.penup() turtle.goto(0, 0) turtle.pendown() for i in range(12): turtle.forward(radius * 0.8) turtle.pencolor("red") turtle.pensize(5) turtle.write(i+1, align="center", font=("Courier", 14, "bold")) turtle.back(radius * 0.8) turtle.right(30) def main(): turtle.setup(width=800, height=800) turtle.speed(0) radius = 300 draw_clock(radius) main()
以上代码中,我们使用turtle模块绘制了一个表盘的外圆和刻度线,其中的时间刻度用红色标注出来。可以通过修改半径和刻度线长度等参数来适应不同大小的表盘。
二、获取当前时间
使用Python内置的time模块可以获取当前时间,代码如下:
import time def get_current_time(): return time.localtime() current_time = get_current_time() hour = current_time.tm_hour minute = current_time.tm_min second = current_time.tm_sec
以上代码中,我们调用time模块的localtime函数获取当前本地时间,并从中提取出小时、分钟和秒数。
三、在表盘上显示时间
有了时钟表盘和当前时间的数据,我们可以在表盘上显示时间了。
import turtle import time # 绘制时钟表盘 def draw_clock(radius): # 绘制表盘的外圆 turtle.pensize(7) turtle.color("black") turtle.penup() turtle.goto(0, -radius) turtle.pendown() turtle.circle(radius) # 绘制表盘上的刻度 turtle.penup() turtle.goto(0, 0) turtle.pendown() for i in range(12): turtle.forward(radius * 0.8) turtle.pencolor("red") turtle.pensize(5) turtle.write(i+1, align="center", font=("Courier", 14, "bold")) turtle.back(radius * 0.8) turtle.right(30) # 获取当前时间 def get_current_time(): return time.localtime() # 在表盘上显示时间 def show_time(hour, minute, second, radius): # 显示时针 turtle.pensize(12) turtle.color("black") turtle.penup() turtle.goto(0, 0) turtle.pendown() turtle.right(hour * 30 + minute * 0.5) turtle.forward(radius * 0.6) # 显示分针 turtle.pensize(8) turtle.color("blue") turtle.penup() turtle.goto(0, 0) turtle.pendown() turtle.right(minute * 6) turtle.forward(radius * 0.8) # 显示秒针 turtle.pensize(3) turtle.color("red") turtle.penup() turtle.goto(0, 0) turtle.pendown() turtle.right(second * 6) turtle.forward(radius * 0.9) def main(): turtle.setup(width=800, height=800) turtle.speed(0) radius = 300 draw_clock(radius) while True: turtle.clear() current_time = get_current_time() hour = current_time.tm_hour minute = current_time.tm_min second = current_time.tm_sec show_time(hour, minute, second, radius) turtle.update() time.sleep(1) main()
以上代码中,我们使用show_time函数将时针、分针和秒针分别绘制在表盘上。其中,时针每小时旋转30度,每分钟旋转0.5度;分针每分钟旋转6度;秒针每秒旋转6度。
最后,在主函数中使用while循环来不断更新表盘上的时间,调用turtle.update()函数将图形更新到屏幕上,每一秒钟暂停一次,以达到实时显示时间的效果。