要赢得强力球彩票(这是一个极不可能的事件,所以不要浪费你的时间),你必须正确选择六个数字。前五个数字是从包含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 ....
答案 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 )