【发布时间】:2016-04-28 20:16:56
【问题描述】:
所以我正在制作一个小型文字游戏,我想做的一件事是从一系列变量中获取一个随机数。
出于测试目的,我编写了如下代码:
slow_speed = random.randrange(10,25)
medium_speed = random.randrange(26, 50)
fast_speed = random.randrange(51, 75)
penalty_list = [slow_speed, medium_speed, fast_speed]
for i in range(3):
for penalty in penalty_list:
print(penalty)
这个想法是它会在列表中循环 3 次,每次都会为每个范围提供不同的随机数。
但是,我得到相同的 3 个数字循环 3 次。我认为这是因为当我调用该函数时种子(我计算机上的时间)是相同的,所以我尝试添加 time.sleep() 和 random.seed() 但这没有帮助。
那么我该如何解决这个问题? 谢谢!
【问题讨论】:
-
什么是
slow_penalty、medium_penalty和fast_penalty?它们似乎不是随机生成的 -
谢谢你,我改变了问题。惩罚也是 rand.range 函数,只是我不小心选错了问题。
-
random.randrange()返回一个整数,而不是每次打印时都会改变值的对象。如果您需要新值,请生成更多整数(每次再次调用random.randrange())。 -
数字仅在第一次选择时随机。见relevant xkcd
标签: python python-3.x random