python代码。利用turtle datetime time 库,制作带刷新时间显示牌的红黄绿灯变化程序,红灯3秒 黄灯1 秒 绿灯2秒,3灯交替出现,同时,年月日时分秒的分秒数可以刷新,30秒后停止。
时间: 2024-10-14 08:10:06 浏览: 30
一起学Python——红绿灯程序设计(1~~4)
要使用`turtle`库创建一个简单的红绿黄交通灯动画,并结合`datetime`库显示当前时间和计时器,你可以按照以下步骤编写代码:
首先确保已安装了`turtle`库,如果没有,可以通过`pip install turtle`进行安装。
```python
import turtle
import datetime
# 初始化Turtle对象
traffic_light = turtle.Turtle()
traffic_light.shape("turtle")
traffic_light.speed(0) # 设置较快的速度
# 定义颜色
red = "red"
yellow = "yellow"
green = "green"
# 定义灯的颜色状态和时间间隔
light_colors = [red, yellow, green]
light_intervals = [3, 1, 2]
# 显示当前日期和时间
def display_time():
now = datetime.datetime.now()
traffic_light.penup()
traffic_light.goto(-50, 150)
traffic_light.pendown()
traffic_light.write(f"{now.strftime('%Y-%m-%d %H:%M:%S')}", align="center", font=("Arial", 16, "normal"))
# 更新灯的状态并显示时间
def change_light():
for color in light_colors:
traffic_light.color(color)
traffic_light.begin_fill()
traffic_light.circle(50)
traffic_light.end_fill()
traffic_light.penup()
traffic_light.forward(100)
traffic_light.pendown()
if color == red:
traffic_light.right(120)
traffic_light.write("Red Light", align="center", font=("Arial", 12, "bold"))
elif color == yellow:
traffic_light.write("Yellow Light", align="center", font=("Arial", 12, "bold"))
else:
traffic_light.write("Green Light", align="center", font=("Arial", 12, "bold"))
traffic_light.left(120)
for interval in light_intervals:
traffic_light.hideturtle() # 隐藏Turtle以便显示时间
display_time()
traffic_light.showturtle() # 展示Turtle继续下一轮循环
traffic_light.penup()
traffic_light.forward(100)
traffic_light.pendown()
turtle.done() # 暂停等待定时器完成
turtle.clearscreen() # 清除屏幕
# 开始循环并设置计时器
change_light()
# 计时器30秒后停止
turtle.ontimer(turtle.bye, 30000) # 30000毫秒相当于30秒
```
这段代码会创建一个红绿黄三色交通灯模型,每隔特定时间切换颜色,并显示当前的日期和时间。计时器会在30秒后自动关闭整个程序。
阅读全文