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

 

 

测试结果:

posted @ 2014-02-10 11:19  脚踏丷七星  阅读(2360)  评论(0编辑  收藏  举报