我刚刚写了一个代码来生成随机数并尝试将它与随机数匹配,但我不知道如何不重复 randint 值,有人可以帮助我吗?
from random import randint
import time
first_time = time.ctime()
print first_time
x = randint(1, 10000)
while x != randint(1, 10000):
ran = randint(1, 10000)
print ran
x = ran
print 'You number is: ', x
print ('You stared at: '+first_time)
print ('You finished at: '+time.ctime())
print('Finish')
Run Code Online (Sandbox Code Playgroud)
最简单的可能是:
deck = list(range(1, 10001))
random.shuffle(deck)
Run Code Online (Sandbox Code Playgroud)
并用于deck.pop()获得下一个“randint不重复”。
这几乎就是你如何从一副牌中获得一张不重复的随机牌(这确实random.shuffle暗示了它的名字,以及为什么我称之为变量deck:-):你从牌组中的所有牌开始,洗牌一次(彻底当然!-),然后每次只发牌堆顶的最后一张牌,而不将其放回牌堆。