0

パワーボールの宝くじ (非常にありそうもないイベントなので、時間を無駄にしないでください) に勝つには、6 つの数字を正しく選ぶ必要があります。最初の 5 つの数字は 53 個のボールが入ったドラムから引き出され、6 番目の数字は 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 ....
4

2 に答える 2

1

while i<=x:-インクリメントiしないため、最後のループでスタックします...

i+=1このようなことを回避し、コード内の行のノイズを取り除くには、forループfor i in range(x)for n in range(5).

于 2013-10-22T23:16:17.000 に答える
1

さらに良いことに、次の式で list1 を置き換えることができます。

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

少なくとも、それはあなたのコードと同じです。しかし、おそらく本当に必要なのは (同じボールが 2 回選択されるのを避けるため):

random.sample( range(1,53), 5 )
于 2013-10-22T23:32:39.563 に答える