Python 随机抽签工具 - 轻松进行分组或抽奖
import random # 导入random模块,用于随机选择成员//nimport re # 导入re模块,用于对成员姓名进行校验//n# 初始化成员列表和已抽中成员列表//nmembers = [] # 成员列表,存储所有待抽签的成员//nselected = [] # 已抽中成员列表,存储已经被抽中的成员//n# 输入成员姓名,并进行校验//ndef input_member()://n while True://n member = input(/'请输入成员姓名(输入0以结束):/') # 提示用户输入成员姓名//n if member == '0': # 如果输入的是0,则结束输入过程//n break//n # 校验姓名是否符合要求,使用正则表达式进行匹配//n if re.match(r'^[^/s0-9]*$', member): # 匹配不包含空格、数字或非法字符的姓名//n members.append(member) # 将符合要求的姓名添加到成员列表中//n else://n print(/'成员姓名不得包含空格、数字或非法字符!/') # 如果姓名不符合要求,则打印错误提示信息//n# 抽中成员并移除//ndef pick_member()://n if len(members) == 0: # 如果成员列表为空,说明所有成员都已被抽中//n print(/'抽签已结束,所有成员都已被抽中!/')//n return False//n selected_member = random.choice(members) # 在成员列表中随机选择一个成员//n selected.append(selected_member) # 将被抽中的成员添加到已抽中成员列表中//n members.remove(selected_member) # 从成员列表中移除被抽中的成员//n print(/'恭喜 {0} 被抽中!/'.format(selected_member)) # 打印被抽中的成员姓名//n return True//n# 移除已抽中成员//ndef remove_selected()://n if len(selected) == 0: # 如果已抽中成员列表为空//n print(/'已抽中成员列表为空!/')//n else://n print(/'已移除以下已抽中成员:/')//n for member in selected: # 遍历已抽中成员列表//n print(member) # 打印每个已抽中成员的姓名//n selected.clear() # 清空已抽中成员列表//n# 显示成员列表和已抽中成员列表//ndef show_members()://n print(/'成员列表:/')//n for member in members: # 遍历成员列表//n print(member) # 打印每个成员的姓名//n print(/'已抽中成员列表:/')//n for member in selected: # 遍历已抽中成员列表//n print(member) # 打印每个已抽中成员的姓名//n# 主程序//nprint(/'欢迎使用抽签工具!/') # 打印欢迎信息//n# 输入成员列表//ninput_member() # 调用input_member函数,输入成员姓名并校验//nwhile True://n print(/'请输入命令(输入help查看帮助):/') # 提示用户输入命令//n command = input() # 获取用户输入的命令//n if command == 'quit': # 如果命令是quit,即退出程序//n print(/'退出程序。/')//n break//n elif command == 'help': # 如果命令是help,即显示可用命令列表//n print(/'可用命令:/')//n print(/' pick - 抽签/')//n print(/' remove - 移除已抽中成员/')//n print(/' show - 显示成员列表和已抽中成员列表/')//n print(/' quit - 退出程序/')//n elif command == 'pick': # 如果命令是pick,即进行抽签//n if pick_member(): # 调用pick_member函数进行抽签,如果能够成功抽中成员//n continue # 继续下一个循环//n else: # 如果所有成员都已被抽中,结束循环//n break//n elif command == 'remove': # 如果命令是remove,即移除已抽中成员//n remove_selected() # 调用remove_selected函数移除已抽中成员//n elif command == 'show': # 如果命令是show,即显示成员列表和已抽中成员列表//n show_members() # 调用show_members函数显示成员列表和已抽中成员列表//n else: # 如果输入的命令无效//n print(/'无效命令,请重新输入!/') # 打印错误提示信息//n结束语内容:谢谢使用抽签工具!希望能帮助到你。结束语。
原文地址: https://www.cveoy.top/t/topic/pUYV 著作权归作者所有。请勿转载和采集!