使用turtle库、time库编程实现循环交替绘制当前时间和自己学号的七段数码管,即绘制七段数码管显示当前时间(时分秒),一秒后绘制七段数码管显示自己学号,不断循环
时间: 2024-03-01 17:54:02 浏览: 22
好的,以下是使用矢量绘图的程序代码:
```python
import turtle
import time
# 学号的七段数码管
def create_number(number, size):
segments = [
[(0, 2), (1, 3), (1, 4), (0, 5), (-1, 4), (-1, 3), (0, 2)], # a
[(-1, 3), (0, 2), (1, 3), (0, 4), (-1, 3)], # b
[(1, 3), (0, 2), (-1, 3), (0, 4), (1, 3)], # c
[(0, 2), (1, 2), (1, 3), (0, 4), (-1, 3), (-1, 2), (0, 2)], # d
[(-1, 3), (0, 4), (1, 3), (0, 2), (-1, 3)], # e
[(1, 4), (0, 5), (-1, 4), (-1, 3), (0, 2), (1, 3), (1, 4)], # f
[(0, 4), (-1, 3), (-1, 2), (0, 2), (1, 2), (1, 3), (0, 4)], # g
]
on = '#000000' # 亮的部分
off = '#ffffff' # 暗的部分
digits = [
[on, on, on, off, on, on, on], # 0
[off, off, on, off, off, on, off], # 1
[on, off, on, on, on, off, on], # 2
[on, off, on, on, off, on, on], # 3
[off, on, on, on, off, on, off], # 4
[on, on, off, on, off, on, on], # 5
[on, on, off, on, on, on, on], # 6
[on, off, on, off, off, on, off], # 7
[on, on, on, on, on, on, on], # 8
[on, on, on, on, off, on, on], # 9
]
number_shape = turtle.Shape('compound')
for i, segment in enumerate(segments):
if digits[number][i]:
coords = [(x*size, y*size) for x, y in segment]
number_shape.addcomponent(coords, on, off)
return number_shape
# 绘制当前时间的七段数码管
def draw_time():
turtle.clear()
t = time.strftime('%H%M%S') # 获取当前时间
size = 20
for i, c in enumerate(t):
turtle.shape(create_number(int(c), size))
turtle.stamp()
if i == 1 or i == 3:
turtle.fd(size*2)
else:
turtle.fd(size)
# 主函数
def main():
turtle.setup(800, 200) # 窗口大小
turtle.speed(0) # 最快速度
turtle.penup()
while True:
draw_time() # 绘制当前时间
time.sleep(1) # 等待1秒
turtle.clearstamps() # 清除之前的数字
turtle.shape(create_number(3, 20)) # 绘制自己的学号
turtle.stamp()
if __name__ == '__main__':
main()
```
这个程序中,`create_number`函数使用给定的数字和大小创建一个七段数码管的形状,并返回它。然后,`draw_time`函数使用`time`模块获取当前时间,并循环遍历字符串中的每个数字。对于每个数字,它使用`create_number`函数创建一个对应的形状,并将其设置为海龟的形状,然后使用`stamp`方法在画布上绘制它。最后,主函数使用一个无限循环,每秒钟交替绘制当前时间和你的学号的七段数码管。
请注意,这个程序中使用了矢量绘图,这意味着每个数字只需要创建一次,然后可以在海龟的形状库中重复使用。这样可以提高绘图性能,并减少内存占用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)