在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')进行比较。
答案 0 :(得分:0)
您可以尝试以下操作:
import random
min = 0
max = 999
digits = [str(random.randint(min, max)) for i in range(5)]
digits = [(len(str(max))-len(digit))*'0'+digit for digit in digits]
>>> digits
['099', '142', '684', '881', '734']
>>>