随机抽签工具 - Python 实现
随机抽签工具 - Python 实现
这是一个使用 Python 实现的简单随机抽签工具,可以用于抽取成员、进行抽奖等。
代码实现
import random
# 初始化成员列表和已抽中成员列表
members = []
selected = []
# 文本输入函数,用于输入成员列表
def input_members():
print('请输入成员姓名(输入 0 以结束):')
while True:
member = input()
if member == '0':
break
members.append(member)
# 抽中剔除函数,用于将已抽中成员从成员列表中剔除
def remove_selected():
for s in selected:
if s in members:
members.remove(s)
# 抽签函数,用于随机抽取一个成员
def pick_member():
if len(members) == 0:
print('抽签已结束,所有成员都已被抽中!')
return False
selected_member = random.choice(members)
selected.append(selected_member)
members.remove(selected_member)
print('恭喜 ' + selected_member + ' 被抽中!')
return True
# 回显函数,用于显示成员列表和已抽中成员列表
def show_members():
print('成员列表:')
for member in members:
print(member)
print('已抽中成员列表:')
for member in selected:
print(member)
# 主程序
print('欢迎使用抽签工具!')
# 文本输入成员列表
input_members()
print('成员列表:')
print(members)
# 开始抽签
while True:
print('请输入命令(输入 help 查看帮助):')
command = input()
if command == 'quit':
print('退出程序。')
break
elif command == 'help':
print('可用命令:')
print(' help - 查看帮助')
print(' pick - 抽签')
print(' remove - 剔除已抽中成员')
print(' show - 显示成员列表和已抽中成员列表')
print(' quit - 退出程序')
elif command == 'pick':
if pick_member():
continue
else:
break
elif command == 'remove':
remove_selected()
print('已剔除已抽中成员!')
elif command == 'show':
show_members()
else:
print('无效命令,请重新输入!')
功能测试和性能评估
功能测试
- 输入成员列表: 输入“Alice”, “Bob”, “Charlie”, “David”, “Eve”。
- 抽签: 使用
pick命令抽签。 - 查看成员列表和已抽中成员列表: 使用
show命令查看。 - 剔除已抽中成员: 使用
remove命令。 - 再次查看成员列表和已抽中成员列表: 使用
show命令查看。
预期结果:
- 成员列表显示为:‘Alice’, ‘Bob’, ‘Charlie’, ‘David’, ‘Eve’。
- 会抽中一个成员并显示该成员被抽中。
- 成员列表显示为:‘Alice’, ‘Charlie’, ‘David’, ‘Eve’。已抽中成员列表显示被抽中的成员。
- 已抽中成员应从成员列表中剔除。
- 成员列表显示为:‘Alice’, ‘Charlie’, ‘David’, ‘Eve’。已抽中成员列表显示被抽中的成员。
性能评估
- 输入大量成员列表: 输入 1000 个成员。
- 抽签: 使用
pick命令抽签。 - 剔除已抽中成员: 使用
remove命令剔除。 - 重复抽签和剔除操作: 直到所有成员都被抽中。
预期结果:
程序应能够处理大量成员列表,并且在每次抽签和剔除操作中保持较好的性能。
实际结果:
由于成员列表较长,程序运行时间较长。
结果分析:
程序在处理大量成员时的性能较差,可能需要进行优化。
总结
该随机抽签工具能够正常运行,但在处理大量成员时性能较差,需要进行优化。
原文地址: https://www.cveoy.top/t/topic/o2oc 著作权归作者所有。请勿转载和采集!