随机抽签工具 - Python 代码实现
import random/nimport re/n/n# 初始化成员列表和已抽中成员列表/nmembers = [] # 成员列表,存储所有待抽签的成员/nselected = [] # 已抽中成员列表,存储已经被抽中的成员/n/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/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('恭喜 ' + selected_member + ' 被抽中!') # 打印被抽中的成员姓名/n return True/n/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/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/n# 主程序/nprint('欢迎使用抽签工具!') # 打印欢迎信息/n/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/n# 结束语内容:欢迎使用抽签工具!
原文地址: https://www.cveoy.top/t/topic/pUYY 著作权归作者所有。请勿转载和采集!