利用turtle datetime time 库,制作带刷新时间显示牌的红黄绿灯变化程序,红灯3秒 黄灯1 秒 绿灯2秒,3灯交替出现,同时,年月日时分秒的分秒数可以刷新,30秒后停止
时间: 2024-10-14 10:06:06 浏览: 21
在Python中,我们可以利用`turtle`库绘制一个动态的红绿灯,并结合`datetime`库来显示实时的时间。下面是一个简单的例子,展示了如何实现这个需求:
```python
import turtle
import datetime
def draw_light(color):
t.color(color)
t.begin_fill()
for _ in range(4):
t.forward(60)
t.right(90)
t.end_fill()
# 初始化窗口和画笔
t = turtle.Turtle()
t.speed('fastest')
t.hideturtle()
# 定义颜色和灯状态
colors = ["red", "yellow", "green"]
current_color_index = 0
light_duration = [3, 1, 2]
total_seconds = sum(light_duration)
while True:
# 显示时间和灯的颜色
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
print(f"Time: {now}, Current light: {colors[current_color_index]}")
# 绘制相应颜色的灯
draw_light(colors[current_color_index])
# 刷新和计时
t.penup()
t.goto(-60, -50) # 每次循环移动位置
t.pendown()
turtle.update() # 更新画面
if total_seconds > 0:
total_seconds -= light_duration[current_color_index]
current_color_index = (current_color_index + 1) % len(colors) # 循环灯的颜色
else:
break
# 休息30秒再开始下一轮
if total_seconds < 0:
time.sleep(30)
total_seconds += 30
t.bye()
```
在这个程序中,我们使用了一个无限循环来持续更新时间并改变灯的颜色。当总时间达到零时,会自动结束。
阅读全文