运用random,codecs两个模块实现随机点名,codecs模块提供的open方法来指定打开的文件的语言编码,它会在读取的时候自动转换为内部unicode ;random用于引入随机变量,访问文件名单后根据题目要求进行随机抽取,在输入抽取人数在名单人数范围内时,程序会依次显示抽取的人名和抽取顺序,当输入人数超过文件内名单人数时,结果会提示抽取人数超过名单总人数,并显示名单全体人数。
import random,codecs
def rollcall():
with open('name.txt', 'r') as f:
w=[]
for w_str in f.readlines():
w_str = w_str.replace(',', '')
w_str = w_str.strip()
w_list = w_str.split(' ')
w.extend(w_list)
k=eval(input('输入抽取人数:'))
if k<=len(w):
for i in range(k):
a=random.choice(w)
w.remove(a)
print('第%d位是:%s'%(i+1,a))
else:
print('您抽取的人数超出了班级总人数人。')
print('班级名单:',w)
rollcall()