python 内置模块 日期时间模块 、随机模块

324 阅读4分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第28天,点击查看活动详情

python 内置模块 日期时间模块

datetime 模块具有许多处理日期和时间的函数和类。您可以使用它来查询PC内部时钟的时间并计算时间

日期之间的差异。这听起来像是一项简单的任务,因为我们经常对日期进行心理计算,但是当您考虑闰年和时区时,它可能会变得有点复杂!幸运的是,我们可以依靠一些聪明的程序员的工作,并让Python毫不费力地做到这一点。在日期 ime 模块中是一个同名的类。让我们用它来查找当前时间:

图片.png

从日期时间模块导入日期时间类后,我们现在调用该函数以返回具有当前时间的日期 ime 对象。该函数现在称为静态方法,因为您在类上使用它,而不是在使用该类创建的对象上使用它。一旦我们将当前日期和时间存储在时间中,我们就调用ctime方法,该方法以字符串形式返回时间的友好表示形式。显然,当您运行它时,它将返回不同的结果。

那么在游戏中寻找时间有什么用呢?好吧,您可能希望存储带有已保存游戏和高分的时间戳。你也可以将游戏与一天中的当前时间联系起来,所以中午天气明亮,阳光明媚,但如果你在晚上玩,它又黑又阴沉。请查看表 2-6,了解您可以在 datet ime 模块中找到的一些内容。

图片.png

Random 模块

当得知随机模块用于生成随机数时,您不会感到惊讶,尽管您可能会惊讶地发现它生成的数字并不是真正的随机数。这是因为计算机实际上没有能力随机选择某些东西。在相同的条件下,他们将再次做同样的事情。随机生成的数字是伪随机的,这意味着它们是从一个非常长的数字序列中提取的,这些数字序列看起来是随机的,但如果生成足够多的数字,它们最终会重复。幸运的是,您可以在游戏中使用它们,因为没有人会注意到它们在几十亿次后重复!

随机(或伪随机)数字在游戏中非常有用,可以阻止它们变得可预测。如果游戏没有随机元素,玩家最终会记住所有动作序列,使其变得不那么有趣(对于大多数人来说)。

让我们编写一个简短的脚本来模拟标准六面骰子的十次投掷

图片.png

哇,只有三行。所有这一切都是导入随机模块,然后调用

随机.兰丁十次并打印结果。函数 randint 采用两个参数 a 和 b,并返回 a 到 b 范围内的伪随机数(可能包括结束值)。因此,兰丁 (1, 6) 返回 1、2、3、4、5 或 6-就像骰子一样。

注意 您可能已经在清单 2-8 中注意到,roll 的值从未在循环中实际使用过。对 xrange (10) 的调用会生成从 0 到 9 的数字,但我们忽略它们,因为我们感兴趣的只是将循环重复十次。与其为从未使用过的值考虑名称,不如使用单个下划线来代替它。因此,清单 2-8 中的循环可以重写为范围 (10) 中的for_ :。尽管清单 2-8 生成的数字看起来是随机的,但它们实际上是伪随机的,这意味着它们是从大型数学生成的序列中选择的。有时,您可能需要重复一系列伪随机数 - 例如,在播放演示时。您可以告诉随机模块启动

通过调用随机数从序列中的特定点生成数字。种子功能。如果使用相同的值调用它两次,它将导致随机模块重现相同的数字序列。清单 2-9 演示了如何使用种子函数来创建可预测的序列。

图片.png

如果运行此小脚本,您将看到重复的相同数字序列两次。请查看表 2-7,了解随机模块的一些功能。

图片.png