





关注让道友老李来帮你解答,本回答参考通义千问qwen-plus编写提供,如果还有疑问可以评论或留言好的,我将为你提供一个详细的解决方案。我们将使用Python编写一个简单的交通信号灯控制程序。这个程序将模拟东西向和南北向的交通信号灯的切换过程。
要求东西向红绿灯亮7秒后,黄灯闪烁5次(2秒)后红灯亮,红灯亮后,南北向由红灯变为绿灯,7秒后,南北向黄灯闪烁5次(2秒)后,红灯亮,东西向绿灯亮,如此重复。
我们定义四个状态:红灯、绿灯、黄灯闪烁和等待。
使用 time.sleep 函数来模拟时间延迟。
使用循环来控制信号灯的切换。
import time
# 定义信号灯状态
RED = 'Red'
GREEN = 'Green'
YELLOW = 'Yellow'
FLASHING_YELLOW = 'Flashing Yellow'
# 定义信号灯切换函数
def switch_traffic_light(direction, state):
print(f"{direction} light is {state}")
if state == FLASHING_YELLOW:
for _ in range(5):
print(f"{direction} light is {YELLOW} (flashing)")
time.sleep(0.2) # 每次闪烁0.2秒
print(f"{direction} light is off (flashing)")
time.sleep(0.2)
else:
if state == RED:
time.sleep(7) # 红灯持续7秒
elif state == GREEN:
time.sleep(7) # 绿灯持续7秒
# 主循环
while True:
# 东西向绿灯
switch_traffic_light("East-West", GREEN)
# 东西向黄灯闪烁
switch_traffic_light("East-West", FLASHING_YELLOW)
# 东西向红灯
switch_traffic_light("East-West", RED)
# 南北向绿灯
switch_traffic_light("North-South", GREEN)
# 南北向黄灯闪烁
switch_traffic_light("North-South", FLASHING_YELLOW)
# 南北向红灯
switch_traffic_light("North-South", RED)
switch_traffic_light 函数用于切换信号灯的状态,并根据状态的不同进行不同的操作。如果是黄灯闪烁状态,会循环5次,每次闪烁0.2秒。运行上述代码后,你会看到类似以下的输出:
East-West light is Green
East-West light is Flashing Yellow
East-West light is Red
North-South light is Green
North-South light is Flashing Yellow
North-South light is Red
East-West light is Green
...
这个程序会无限循环,模拟交通信号灯的切换过程。你可以根据需要调整时间间隔或添加更多的功能。希望这对你有所帮助!