Python随机抽签工具 - 轻松便捷多人抽奖
import//s+random//nimport//s+re//n#//s+初始化成员列表和已抽中成员列表//nmembers//s+=//s+[]//nselected//s+=//s+[]//n#//s+输入成员姓名,并进行校验//ndef//s+input_member()://n//twhile//s+True://n//t/tmember//s+=//s+input(/'请输入成员姓名(输入0以结束):/')//n//t/tif//s+member//s+==//s+'0'://n//t/t/tbreak//n//t/t#//s+校验姓名是否符合要求//n//t/tif//s+re.match(r'^[^/s0-9]*$',//s+member)://n//t/t/tmembers.append(member)//n//t/telse://n//t/t/tprint(/'成员姓名不得包含空格、数字或非法字符!/')//n#//s+抽中成员并移除//ndef//s+pick_member()://n//tif//s+len(members)//s+==//s+0://n//t/tprint(/'抽签已结束,所有成员都已被抽中!/')//n//t/treturn//s+False//n//tselected_member//s+=//s+random.choice(members)//n//tselected.append(selected_member)//n//tmembers.remove(selected_member)//n//tprint(/'恭喜//s+{0}//s+被抽中!/'.format(selected_member))//n//treturn//s+True//n#//s+移除已抽中成员//ndef//s+remove_selected()://n//tif//s+len(selected)//s+==//s+0://n//t/tprint(/'已抽中成员列表为空!/')//n//telse://n//t/tprint(/'已移除以下已抽中成员:/')//n//t/tfor//s+member//s+in//s+selected://n//t/t/tprint(member)//n//t/tselected.clear()//n#//s+显示成员列表和已抽中成员列表//ndef//s+show_members()://n//tprint(/'成员列表:/')//n//tfor//s+member//s+in//s+members://n//t/tprint(member)//n//tprint(/'已抽中成员列表:/')//n//tfor//s+member//s+in//s+selected://n//t/tprint(member)//n#//s+主程序//nprint(/'欢迎使用抽签工具!/')//n#//s+输入成员列表//ninput_member()//nwhile//s+True://n//tprint(/'请输入命令(输入help查看帮助):/')//n//tcommand//s+=//s+input()//n//tif//s+command//s+==//s+'quit'://n//t/tprint(/'退出程序。/')//n//t/tbreak//n//telif//s+command//s+==//s+'help'://n//t/tprint(/'可用命令:/')//n//t/tprint(/' pick//s+-//s+抽签/')//n//t/tprint(/' remove//s+-//s+移除已抽中成员/')//n//t/tprint(/' show//s+-//s+显示成员列表和已抽中成员列表/')//n//t/tprint(/' quit//s+-//s+退出程序/')//n//telif//s+command//s+==//s+'pick'://n//t/tif//s+pick_member()://n//t/t/tcontinue//n//t/telse://n//t/t/tbreak//n//telif//s+command//s+==//s+'remove'://n//t/tremove_selected()//n//telif//s+command//s+==//s+'show'://n//t/tshow_members()//n//telse://n//t/tprint(/'无效命令,请重新输入!/')//n设计思路内容:1. 首先,我们需要一个成员列表和一个已抽中成员列表来存储成员的姓名。我们可以使用两个空列表members和selected来初始化这两个列表。//n2. 然后,我们需要一个函数input_member()来输入成员的姓名,并进行校验。校验的规则是成员姓名不得包含空格、数字或非法字符。如果姓名符合要求,则将其添加到members列表中;如果输入的是0,则结束输入。//n3. 接下来,我们需要一个函数pick_member()来抽中成员并将其从members列表中移除。首先判断members列表是否为空,如果为空,则输出抽签已结束的提示信息;否则,使用random.choice()函数从members列表中随机选择一个成员,将其添加到selected列表中,并从members列表中移除。然后,输出被抽中的成员的姓名。//n4. 我们还需要一个函数remove_selected()来移除已抽中成员。首先判断selected列表是否为空,如果为空,则输出已抽中成员列表为空的提示信息;否则,遍历selected列表,输出每个已抽中成员的姓名,并清空selected列表。//n5. 最后,我们需要一个函数show_members()来显示成员列表和已抽中成员列表。遍历members和selected列表,分别输出每个成员的姓名。//n6. 在主程序中,首先输出欢迎信息。然后,使用一个while循环来等待用户输入命令。命令有四种:pick - 抽签,remove - 移除已抽中成员,show - 显示成员列表和已抽中成员列表,quit - 退出程序。根据用户输入的命令执行相应的操作。如果用户输入的命令是pick,调用pick_member()函数;如果是remove,调用remove_selected()函数;如果是show,调用show_members()函数;如果是quit,输出退出程序的提示信息并跳出循环;如果是其他无效命令,则输出无效命令的提示信息。
原文地址: https://www.cveoy.top/t/topic/pNDQ 著作权归作者所有。请勿转载和采集!