当前位置:   article > 正文

用Python写一个抢演唱会门票的脚本_演唱会抢票代码

演唱会抢票代码
  1. import threading
  2. import time
  3. from random import randint
  4. # 演唱会门票总数量
  5. TOTAL_TICKETS = 100
  6. # 剩余门票数量
  7. remaining_tickets = TOTAL_TICKETS
  8. # 抢票函数
  9. def grab_ticket(user_id):
  10. global remaining_tickets
  11. print(f"用户{user_id}正在尝试获取门票...")
  12. # 模拟网络请求时间
  13. time.sleep(2)
  14. # 随机决定是否成功获取门票
  15. success = bool(randint(0, 1))
  16. if not success:
  17. print(f"用户{user_id}没有成功获取门票。")
  18. elif remaining_tickets > 0:
  19. # 成功获取门票,将剩余门票数量减少1
  20. remaining_tickets -= 1
  21. print(f"恭喜!用户{user_id}已经成功获取了门票。")
  22. else:
  23. # 剩余门票数量为0,获取门票失败
  24. print(f"非常抱歉,演唱会门票已经售罄,用户{user_id}没有成功获取门票。")
  25. # 创建多个线程模拟多个用户同时进行抢票行为
  26. threads = []
  27. for i in range(5): # 假设有5个用户
  28. thread = threading.Thread(target=grab_ticket, args=(i+1,))
  29. thread.start()
  30. threads.append(thread)
  31. # 等待所有线程完成
  32. for thread in threads:
  33. thread.join()
  34. print("所有用户的抢票行为已经完成。")

这个代码示例定义了一个grab_ticket函数,模拟了抢票过程。每个线程都会调用这个函数来进行抢票行为。

grab_ticket函数中,首先输出一条消息,表示正在尝试获取门票,并延迟2秒钟模拟网络请求时间。然后,随机决定是否成功获取门票。如果没有成功,则输出相应的消息;否则,如果还有剩余门票,将剩余门票数量减少1,并通知用户获取门票成功;否则,将通知用户获取门票失败。

在main函数中,创建5个线程模拟5个用户同时进行抢票行为。每个线程都会调用grab_ticket函数来进行抢票行为。最后,等待所有线程完成后输出所有用户的抢票行为已经完成。

当然,在实际应用中,可能还需要考虑并发、数据存储、异常处理等更多细节。上述示例只是一个简单的演示,仅供参考。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/660950
推荐阅读
相关标签
  

闽ICP备14008679号