[英]How to get unique numbers using randomint python?
我正在創建一個“歐洲百萬富翁彩票生成器”,只是為了好玩,我不斷打印出相同的數字。 我如何做到這一點,以便獲得隨機數,而永遠不會彈出相同的數字:
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
輸出是:
>>> Your lucky numbers are: 41 41 41 41 41
>>> Your lucky stars are: 8 8
>>> Good bye!
我怎樣才能解決這個問題?
問候
您正在生成一個數字,然后多次打印出來。
而是生成幾個數字:
print "Your lucky numbers are: ", randint(1,50), randint(1,50), randint(1,50), randint(1,50), randint(1,50)
或生成列表:
numbers = [randint(1,50) for _ in range(5)]
print "Your lucky numbers are: ", ' '.join(numbers)
或更妙的是,生成所有允許的數字(使用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))
現在,保證numbers
由完全唯一的數字組成。
該numbers
變量,因為它僅指的結果不會奇跡般地更新每次打印時random.randint(1, 50)
設置一組數字,然后將其洗牌並切成薄片。
from random import shuffle
numbers = list(range(1,51))
shuffle(numbers)
draw = numbers[:6]
print(draw)
numbers = randint(1,50)
為變量分配一個隨機數。 然后您反復使用這個隨機數。 stars
嘗試以下方法:
print "Your lucky numbers are: ", randint(1,50), randint(1,50), randint(1,50), randint(1,50), randint(1,50)
或者,您可以創建數字列表並獲取隨機樣本:
numbers = range(1,50)
print "Your lucky numbers are: ", ' '.join(map(str, random.sample(numbers, 5)))
您應該致電randint
5次以獲取您的幸運數字。 您只需調用一次,並顯示5次結果。
您可以使用
random.sample(range(range_to_which_random_be_generated), number_of_numbers_to_generate)
例
random.sample(range(50),6)
會產生0至49范圍內的6個不同的數字
我建議的一種方法是將生成的數字放在列表中,並在將下一個數字添加到列表中之前檢查下一個數字是否不在列表中
numbers=[randint(1,50)]
i=1
while i<n: # n is the number of random numbers you want to generate
x=randint(1,50)
if not x in numbers:
i+=1
numbers.append(x)
您的代碼中的問題是您只生成一個隨機數並打印四次
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.