在 Python 程序中使用随机数非常有用。假如你在玩《龙与地下城》(Dungeons & Dragons)并且想要创建一个小型的 Python 程序来为你掷骰子。虽然用实体骰子掷骰子对玩家来说带来了很多满足感,但为此创建一个有趣的小应用程序是学习在 Python 中使用随机数的好方法。
OpenBayes 平台跑了上线了在 Python 中生成随机数字的教程,该教程已经搭建好了环境,直接克隆即可启动,使用我的邀请链接,还可以获得 4 小时免费 4090 哦~
登录平台后,打开「公共教程」,找到「如何在 Python 中生成随机数字」的教程,进入后点击右上角的「克隆」。
等待分配好资源后,点击「打开工作空间」。
双击打开左侧导航栏中 Random.ipynb 文件,进入教程。
运行 import random 导入 random 模块。
之后定义一个变量 n,使用 randint 函数来生成一个 0 到 10 之间的随机数,此处 randint 前面需要加上 random,以表示它属于 random 库内,这样 Python 可以知道我们调用的是哪一个库中的 randint。
运行 print(n) 打印 n,可以看见此次的随机数为 1。
我们新建一个终端,将终端拖到下面。
运行 touch simplerand.py 的命令,可以看到在,左侧生成了一个 Python 文件。
我们将之前的代码全部复制进入文件之中,然后保存,使用 !python3 simplerand.py 命令运行这个文件,可以看到它直接得到了一个随机数字 3。
再次运行 !python3 simplerand.py,得到了一个随机数字 1。
也可以直接在 notebook 中运行这段命令得到运行结果。
但是更推荐在 notebook 中使用 % 加上 run 命令来运行一段 Python 文件。
如果随机数不想包括范围最外层的数字,可以使用 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 中的任何一个数字。
我们这里选择 20,然后将用户输入转化为整数类型,输入到我们的 randint 中,运行n = random.randint(0, int(number_1)),我们得到一个随机数字 n,打印这个随机数字可以看见我们的随机数字为 11 。
我们试着运行这个程序,输入一个数字,比如说 100,它生成了 94 作为随机数字。
我们创建一个新的文件,将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)
如果觉得文字教程不好理解,可以在 B 站搜索视频【Python 基础教程】在 Python 中生成随机数字,根据学习操作~