使用turtle库、time库编程实现自己的七段数码管式学号从窗口右侧向左侧滚动,从左侧移出后重新出现在右侧,循环往复
时间: 2024-03-01 13:55:45 浏览: 39
vhdl程序设计:在7段数码管上同时显示自己学号的最前4位和最后4位.docx
好的,我知道了。以下是代码实现:
```python
import turtle
import time
# 定义数字的七段显示方式
def draw_digit(digit, pen):
pen.pendown() if (digit[0] == '1') else pen.penup()
pen.fd(50)
pen.right(90)
pen.pendown() if (digit[1] == '1') else pen.penup()
pen.fd(50)
pen.right(90)
pen.pendown() if (digit[2] == '1') else pen.penup()
pen.fd(50)
pen.left(90)
pen.pendown() if (digit[3] == '1') else pen.penup()
pen.fd(50)
pen.left(90)
pen.pendown() if (digit[4] == '1') else pen.penup()
pen.fd(50)
pen.left(90)
pen.pendown() if (digit[5] == '1') else pen.penup()
pen.fd(50)
pen.right(90)
pen.pendown() if (digit[6] == '1') else pen.penup()
pen.fd(50)
pen.right(90)
pen.penup()
# 获取当前时间的字符串
def get_time_str():
return time.strftime('%H%M%S', time.localtime(time.time()))
# 绘制学号
def draw_student_id(id_str, pen):
pen.penup()
pen.goto(200, 0)
for digit in id_str:
draw_digit(digit, pen)
pen.fd(60)
def main():
# 初始化画板
window = turtle.Screen()
window.bgcolor('black')
window.title('My Student ID')
# 创建画笔
pen = turtle.Turtle()
pen.color('white')
pen.speed(0)
pen.pensize(5)
while True:
# 获取当前时间字符串
id_str = get_time_str()
# 绘制学号
draw_student_id(id_str, pen)
# 将画笔移动到起始位置
pen.penup()
pen.goto(200, 0)
# 依次擦除数字
for i in range(len(id_str)):
pen.pendown()
draw_digit('0000000', pen)
pen.penup()
pen.fd(60)
# 等待一段时间
time.sleep(1)
# 点击关闭窗口
window.exitonclick()
if __name__ == '__main__':
main()
```
代码中,`draw_digit` 函数用于绘制一个数字的七段显示方式。`get_time_str` 函数用于获取当前时间的字符串,格式为 `%H%M%S`,即小时、分钟、秒数。`draw_student_id` 函数用于绘制学号,首先将画笔移动到右侧窗口,然后依次绘制每个数字。`main` 函数是程序的主函数,不断地获取当前时间字符串,绘制学号,然后依次擦除数字,等待一段时间后再重复执行。
阅读全文