集团年会那个抽奖程序崩溃实在令人印象太深刻了,所以自己弄了一个简单版本的。。。
data =[]#从文件或数据库读取抽奖号保存为一个list
allwindata=[]
while 1:
windata=[]
iNum= raw_input("please input the numbers:\n")#抽几个人
#method= raw_input("please input the method:\n")#做所谓奇偶数抽奖,没意义
if iNum.isdigit()==0:
iNum= raw_input("please input the numbers:\n")
if int(iNum)>=len(data):
windata=data
allwindata.extend(windata)
data=[]
else:
for i in range(0,int(iNum)):
#ii=random.choice(data)
#windata.append(ii)
#allwindata.append(ii)
#data.remove(ii)
##方法二,用.pop,性能在20000以上时明显更好
x = random.randint(0,len(data)-1)
ii= data[x]
windata.append(ii)
allwindata.append(ii)
data.pop(x)
print windata#中奖号码,如果怕崩溃就更新到文件或者数据库。。。
print data#剩余的num,如果怕崩溃就更新到文件或者数据库。。。
print allwindata#所有已经中奖的号码,如果怕崩溃就更新到文件或者数据库。。。