红绿灯的Python模拟可以通过使用`threading`模块中的`Event`对象来实现。下面是一个简单的红绿灯模拟程序示例:
import threadingimport time创建一个Event对象来控制红绿灯状态event = threading.Event()定义一个函数来模拟红绿灯的变化def light():while True:等待事件被设置event.wait()红灯亮起print("\033[41m--red light on--\033[0m")等待一段时间time.sleep(5)黄灯亮起event.clear()print("\033[43m--yellow light on --\033[0m")等待一段时间time.sleep(2)绿灯亮起event.set()print("\033[42m--green light on--\033[0m")启动红绿灯线程traffic_light_thread = threading.Thread(target=light)traffic_light_thread.start()模拟车辆根据红绿灯规则行驶def car(name):while True:如果事件被设置,即绿灯亮,车辆可以行驶if event.is_set():print(f"Car {name} is running...")time.sleep(1)else:print(f"Car {name} sees red light, waiting...")event.wait() 等待事件被设置,即绿灯亮起启动车辆线程car_thread = threading.Thread(target=car, args=("Car1",))car_thread.start()等待线程结束(这里使用了一个无限循环,因为红绿灯和车辆会一直运行)traffic_light_thread.join()car_thread.join()
这个程序创建了一个红绿灯线程和一个模拟车辆行驶的线程。红绿灯线程使用`Event`对象来控制红绿灯的状态,车辆线程则根据红绿灯的状态来决定是否可以行驶。
请注意,这个程序是一个简化的模拟,实际的红绿灯系统会更复杂,可能包括多个方向的红绿灯、倒计时、行人信号等。此外,实际应用中红绿灯的状态变化通常由交通信号灯控制器或交通管理中心来管理,而不是通过程序模拟
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/118035.html