我想生成00000到99999之间的数字。
带
number=randint(0,99999)
我只生成没有前导零的值,当然是23而不是00023。 有没有一个技巧可以生成%05d意义上的总是5位数值,或者我真的需要播放python-string-trick来填充前面缺少的0,以防len()< 5?
感谢阅读和帮助,
乙
答案 0 :(得分:7)
你必须做一个python-string-trick,因为整数本身没有前导零
number="%05d" % randint(0,99999)
答案 1 :(得分:3)
randint
生成的数字是整数。整数是整数,将在没有前导零的情况下打印。
如果你想要一个可以有前导零的字符串表示,请尝试:
str(randint(0, 99999)).rjust(5, "0")
答案 2 :(得分:0)
randint
生成整数。这是简单的数字,没有任何固有的视觉表现。只有从这些数字创建字符串(以及另一种表示)时,前导零才可见。
因此,您必须使用串行函数来获得前导零(并且稍后必须处理这些字符串)。例如。事后不可能做任何计算。要创建这些字符串,您可以执行类似
的操作number = "%05d" % random.randint(0,99999)
所有这一切的要点是整数与字符串不同,即使它们看起来相似。
>>> '12345' == 12345
False
答案 3 :(得分:0)
对于python,你生成了一堆数字,只有当你打印它/ display时才转换成字符串,因此它可以有填充。
您也可以将number
存储为格式化字符串:
number="%05d" % random.randint(0,9999)
答案 4 :(得分:0)
或者,str(randint(0, 99999)).zfill(5)
,它提供的性能略高于字符串格式(20%)和str.rjust(1%)。