在 Python 程序中使用随机数非常有用。假如你在玩《龙与地下城》(Dungeons & Dragons)并且想要创建一个小型的 Python 程序来为你掷骰子。虽然用实体骰子掷骰子对玩家来说带来了很多满足感,但为此创建一个有趣的小应用程序是学习在 Python 中使用随机数的好方法。
OpenBayes 平台跑了上线了在 Python 中生成随机数字的教程,该教程已经搭建好了环境,直接克隆即可启动,使用我的邀请链接,还可以获得 4 小时免费 4090 哦~
登录平台后,打开「公共教程」,找到「如何在 Python 中生成随机数字」的教程,进入后点击右上角的「克隆」。
等待分配好资源后,点击「打开工作空间」。
双击打开左侧导航栏中 Random.ipynb 文件,进入教程。
之后定义一个变量 n,使用 randint 函数来生成一个 0 到 10 之间的随机数,此处 randint 前面需要加上 random,以表示它属于 random 库内,这样 Python 可以知道我们调用的是哪一个库中的 randint。
运行 print(n) 打印 n,可以看见此次的随机数为 1。
我们新建一个终端,将终端拖到下面。
运行 touch simplerand.py 的命令,可以看到在,左侧生成了一个 Python 文件。
再次运行 !python3 simplerand.py,得到了一个随机数字 1。
也可以直接在 notebook 中运行这段命令得到运行结果。
如果随机数不想包括范围最外层的数字,可以使用 randrange 函数排除设定范围内最外面两个数字作为输出,通过运行 n = random.randrange(0,10) 后,可以得到 1 到9 之间的随机数字,而不包括 0 和 10 。
下面我们设计一个复杂一点的随机数生成器,在实际引用中我们的随机数范围可能需要依赖用户的输入,所以我们需要设计一个可以接受用户输入作为范围的随机数生成器。首先导入 random 模块,然后定义一个 number_1 变量接收用户的输入,运行 number_1 = input(“Enter the number of sides on your dice from 3, 6, 10, 20, and 100: “) ,可以输入 3,6,10,20,100 中的任何一个数字。
我们创建一个新的文件,将import random number_1 = input(“Enter the number of sides on your dice from 3, 6, 10, 20, and 100: “) n = random.randint(0, int(number_1)) print(n)
复制到新文件中。
然后在终端中使用 !python3 rando.py 来运行我们的代码,输入一个数字就可以得到一个随机数字。
如果想在 notebook 中直接使用这行代码,需要把前面的 Python 换为 run 命令,每次运行应用程序时,将得到一个从 0 到用户输入的数字范围内的伪随机结果。
我们可以添加一个 while 循环来不断地获取用户的输入,从而不断地生成相应的随机数。import random while True: number_1 = input(“Enter the number of sides on your dice from 3, 6, 10, 20, and 100: “) n = random.randint(0, int(number_1)) print(n)