Python根据上下限生成不重复随机数1
Python 2.7.5代码:
1 #coding=utf-8 2 import random 3 4 #定义计数器,默认为0 5 num=0 6 #定义随机结果集,默认为空列表 7 choose_resault=[] 8 9 #最多可随机5次 10 while num<5: 11 #输入上下限 12 min_num = input(u'随机数上限:') 13 max_num = input(u'随机数下限:') 14 15 #确定上限必须大于下限 16 if min_num>=max_num: 17 print u'随机数上限必须大于下限' 18 pass 19 #确定能随机5次 20 elif len(range(min_num,max_num+1))<5: 21 print u'随机数总数小于5,不够随机5次,重新输入!' 22 pass 23 else: 24 #根据上下限生成列表 25 random_list=range(min_num,max_num+1) 26 print u'根据您输入的上下限,已准备好从%d到%d共计%d个随机数可抽取!' %(min_num,max_num,len(range(min_num,max_num+1))) 27 #最多可随机5次 28 29 while num<5: 30 #确定是否随机? 31 choose=int(raw_input(u'是否随机抽取一个?(‘是’则1,‘否’则0)')) 32 #输入1,生成随机数 33 if choose==1: 34 #根据列表生成随机数 35 random_num=random.choice(random_list) 36 #判断随机数是否已存在于随机结果集,不存在则添加,计数器+1,存在则提示重复 37 if random_num not in choose_resault: 38 choose_resault.append(random_num) 39 print u'第%d次随机结果:%d' %(num+1,random_num) 40 num+=1 41 else: 42 print u'第%d次随机结果:%d,重复,需重新随机一次!' %(num+1,random_num) 43 pass 44 #输入0,程序退出,并给出提示 45 elif choose==0: 46 print u'你在第%d次随机时选择了退出!' %(num+1) 47 num=6 48 break 49 #输入非1、0,给出提示 50 else: 51 print u'请输入1或0!' 52 53 #计数器为5,程序退出 54 while num==5: 55 #随机5次,程序退出 56 print u'随机次数已达5次,程序退出!' 57 print u'最终随机结果如下:',choose_resault 58 break 59 #计数器不为0~5,打印也已随机的结果 60 else: 61 print u'最终随机结果如下:',choose_resault
测试结果: