导入随机不起作用(我认为)

时间:2015-11-20 13:21:52

标签: python random

我是Python(大学一年级学生)的新手,在尝试完成一些作业时,我遇到了一个问题。我正在使用随机数创建一个非常简单的程序。这是我到目前为止所写的内容:

import random

def main():
  print random.randint(2,10)
  a=random.seed()
  b=random.seed(5)
  c=random.seed(5)
  print (a)
  print (b)
  print (c)

问题是它总是为a,b和c打印NONE。对于random.int,它始终打印我输入的最小整数(在本例中为2)。所以这基本上使我无法编写实际程序(随机糖果分配器)。我实际上只是假设“导入随机”不起作用。我其实没有任何线索。

我通常会向我的教授询问这个问题,但直到星期一才能联系他,这项任务将在今晚结束。非常感谢任何帮助,我为这篇文章的纯粹业余性道歉。

3 个答案:

答案 0 :(得分:1)

那是因为random.seed仅重置了随机数生成器。它本身不返回任何东西(见https://docs.python.org/2/library/random.html#random.seed)。这意味着它会返回None,这是您在测试中看到的内容。

答案 1 :(得分:1)

首先应设置种子值,这是一个稍后“确定”随机值的值,只需在开始(或首次使用随机数)期间正常设置一次。

a=random.seed(5)

主要是基于当前时间。

您可以拨打连续电话获取随机数:

print random.randint(2,10)

答案 2 :(得分:1)

正如您可以通过输入

看到的那样
>>> import random
>>> help(random.seed)
  

种子(a = None,version = 2)随机方法。随机实例       从可散列对象初始化内部状态。

None or no argument seeds from current time or from an operating
system specific randomness source if available.

For version 2 (the default), all of the bits are used if *a* is a str,
bytes, or bytearray.  For version 1, the hash() of *a* is used instead.

If *a* is an int, all bits are used.

random.seed用于设置随机生成器。

为了获得值,您需要使用random模块提供的众多功能之一

e.g。

import random

def main():
  print random.randint(2,10)
  a=random.seed()
  b=random.randrange(5)
  c=random.randrange(5)
  print (a)
  print (b)
  print (c)