使用turtle库、time库编程实现循环交替绘制当前时间和自己学号的七段数码管,即绘制七段数码管显示当前时间(时分秒),一秒后绘制七段数码管显示自己学号,不断循环。
时间: 2024-04-28 08:19:56 浏览: 10
好的,我可以为您编写这个程序。以下是Python代码:
```python
import turtle
import time
# 学号的七段数码管
def draw_number(num, pen):
if num in [0, 2, 3, 5, 6, 7, 8, 9]:
pen.pendown()
else:
pen.penup()
pen.forward(30)
if num in [0, 1, 3, 4, 5, 6, 7, 8, 9]:
pen.pendown()
else:
pen.penup()
pen.left(90)
pen.forward(50)
if num in [0, 2, 3, 5, 6, 8, 9]:
pen.pendown()
else:
pen.penup()
pen.right(90)
pen.forward(30)
if num in [0, 2, 6, 8]:
pen.pendown()
else:
pen.penup()
pen.right(90)
pen.forward(50)
if num in [0, 4, 5, 6, 8, 9]:
pen.pendown()
else:
pen.penup()
pen.right(90)
pen.forward(30)
if num in [0, 2, 3, 5, 6, 8, 9]:
pen.pendown()
else:
pen.penup()
pen.left(90)
pen.forward(50)
if num in [0, 1, 2, 3, 4, 7, 8, 9]:
pen.pendown()
else:
pen.penup()
pen.left(90)
pen.forward(30)
pen.penup()
pen.right(180)
pen.forward(30)
pen.right(90)
pen.forward(50)
# 当前时间的七段数码管
def draw_time(pen):
# 获取当前时间
current_time = time.strftime("%H%M%S", time.localtime())
# 绘制时、分、秒的七段数码管
for i in range(6):
draw_number(int(current_time[i]), pen)
pen.penup()
pen.forward(50)
# 初始化海龟绘图窗口
def init_window():
window = turtle.Screen()
window.bgcolor("black")
window.title("七段数码管")
# 设置窗口大小
w = 450
h = 100
window.setup(width=w, height=h)
return window
# 主函数
def main():
# 初始化海龟绘图窗口
window = init_window()
# 创建画笔
pen = turtle.Turtle()
# 设置画笔样式
pen.color("white")
pen.pensize(5)
pen.speed(0)
pen.hideturtle()
# 循环绘制当前时间和学号的七段数码管
while True:
draw_time(pen)
time.sleep(1)
pen.clear()
draw_number(1, pen)
draw_number(7, pen)
draw_number(1, pen)
draw_number(0, pen)
draw_number(7, pen)
draw_number(5, pen)
draw_number(5, pen)
time.sleep(1)
pen.clear()
window.mainloop()
if __name__ == '__main__':
main()
```
程序使用了turtle库和time库。在程序中,我们定义了两个函数:draw_number()和draw_time()。draw_number()用于绘制学号的七段数码管,draw_time()用于绘制当前时间的七段数码管。
在主函数中,我们使用了一个无限循环来交替绘制当前时间和学号的七段数码管。每次绘制完一个数码管后,程序会等待一秒钟,然后清除画布,绘制另一个数码管。
最后,我们调用main()函数来启动程序。您可以在海龟绘图窗口中看到绘制出来的七段数码管。