【发布时间】:2015-05-15 04:36:35
【问题描述】:
在 Python 3x 中,有没有一种方法可以生成固定位数的随机数,该随机数可以在第一位或前两位返回 0?例如005 或 059 而不是 5 和 59?
我正在创建一个游戏,玩家需要输入一个随机创建的 3 位代码(在游戏的其他地方可以找到)。理想情况下,它将从000 - 999 中选择。
random.randint(0,999) 不会提供我想要的输出。
我能想出的唯一解决方案是冗长的(生成 0 到 9 之间的 3 个数字,转换为字符串并组合),我想知道是否有更直接的方法:
import random
digit1 = str(random.randint(0,9))
digit2 = str(random.randint(0,9))
digit3 = str(random.randint(0,9))
code = digit1 + digit2 + digit3
这种方法可以让我与用户的输入代码进行比较,但如果可能的话,我想直接生成数字。
编辑:为了澄清,我想知道是否有一种方法可以生成一个具有预定位数的数字,该数字可以在一个或多个前导数字中包含“0”,而无需将数字转换为字符串以进行格式化。 Nicest way to pad zeroes to string 有帮助,虽然我没有尝试打印随机数,而是将其与使用输入(例如 '0560')进行比较。
【问题讨论】:
-
前导零是字符串表示的一部分。只需根据链接问题中的建议填充到 3 个字符即可。
-
数字没有“数字”。数字的文本表示具有数字。如果您想要 3 位随机数,则只需获取 0 到 999 之间的随机数,并在将它们转换为文本时放入前导零。
-
好的,谢谢,这回答了我的问题。
标签: python-3.x random