强力球号码发生器

时间:2013-10-22 23:13:16

标签: python-2.7

要赢得强力球彩票(这是一个极不可能的事件,所以不要浪费你的时间),你必须正确选择六个数字。前五个数字是从包含53个球的鼓中抽出的,第六个是从包含42个球的鼓中抽出的。这样做的可能性是120,526,770中的1。

输出必须采用以下形式:

官方(但没有结果)强力球号码生成器

有多少套数字? 3

你的号码:3 12 14 26 47强力球:2
你的号码:1 4 31 34 51强力球:17
你的号码:10 12 49 50 53强力球:35

import random

#Powerball

print "Offical Powerball number generaor"

x = int(raw_input("How many sets of numbers? "))


z = range(1,42)
z1 = random.choice(z)

def list1():
    l1=[]
    n=1
    while n<=5:
        y = range(1,53)
        y1 = random.choice(y)
        l1.append(y1)
        n +=1
    print sorted(l1)

i=1
while i<=x:
#    print "Your numbers: " + list1() +  "Powerball: "+ str(z1)

     print list1()

raw_input("Press<enter>")

我的代码输出无限循环。我必须杀了它。消息是:

None     
[2, 7, 22, 33, 42]      
None      
[15, 19, 19, 26, 48]      
None      
[1, 5, 7, 26, 41]     
None     
[7, 42, 42, 42, 51]     
None    
..... etc ....

2 个答案:

答案 0 :(得分:1)

while i<=x: - 你永远不会增加i,所以它会停留在你的最后一个循环中......

为避免此类问题并消除代码中i+=1行的噪音,建议您使用for循环for i in range(x)for n in range(5)

答案 1 :(得分:1)

更好的是,以下表达式可以替换list1:

[random.choice(range(1,53)) for x in xrange(5)]

至少,这与您的代码相同。但你可能真正想要的是(避免两次选择相同的球):

random.sample( range(1,53), 5 )