use*_*572 0 python random int loops while-loop
我正在创建一个'Euromillions彩票发生器'只是为了好玩,我不断打印出相同的数字.我该如何制作它以便我得到随机数字并且永远不会弹出相同的数字:
from random import randint
numbers = randint(1,50)
stars = randint(1,11)
print "Your lucky numbers are: ", numbers, numbers, numbers, numbers, numbers
print "Your lucky stars are: " , stars, stars
Run Code Online (Sandbox Code Playgroud)
输出只是:
>>> Your lucky numbers are: 41 41 41 41 41
>>> Your lucky stars are: 8 8
>>> Good bye!
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
问候
您正在生成一个数字,然后多次打印出来.
生成几个数字:
print "Your lucky numbers are: ", randint(1,50), randint(1,50), randint(1,50), randint(1,50), randint(1,50)
Run Code Online (Sandbox Code Playgroud)
或生成一个列表:
numbers = [randint(1,50) for _ in range(5)]
print "Your lucky numbers are: ", ' '.join(numbers)
Run Code Online (Sandbox Code Playgroud)
或者更好的是,生成所有允许的数字(range()
然后使用从中选择一个样本:
possible_numbers = range(1, 51) # end point is not included
numbers = random.sample(possible_numbers, 5)
print "Your lucky numbers are: ", ' '.join(map(str, numbers))
Run Code Online (Sandbox Code Playgroud)
现在numbers
保证由完全唯一的数字组成.
该numbers
变量不会奇迹般地更新每次打印它,因为它仅仅是指时间的结果的random.randint(1, 50)
.
小智 6
设置一组数字,然后随机播放并切片.
from random import shuffle
numbers = list(range(1,51))
shuffle(numbers)
draw = numbers[:6]
print(draw)
Run Code Online (Sandbox Code Playgroud)