如何连接字符串和整数以获得三位数

R. *_*rcy -2 python string int concatenation python-3.x

我是初学者的课程,我制作了这段代码,但它不起作用

random_number = str(random.randrange (1, 1000))
random_number_length = (len (random_number))
zero_number = ("0" * 3 - (random_number_length))
final_number = (random_number_length + random_number)
print (final_number)
Run Code Online (Sandbox Code Playgroud)

最终输出需要看起来像:

004
Run Code Online (Sandbox Code Playgroud)

代替:

4
Run Code Online (Sandbox Code Playgroud)

即使生成的数字是89或7,我也需要得到一个三位数.

当我尝试这个时,我得到错误:

    zero_number = ("0" * 3 - (random_number_length))
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Run Code Online (Sandbox Code Playgroud)

我猜它与字符串和整数有关.

sna*_*erb 5

Python字符串有一个zfill方法,您可以使用它来填充前导零的字符串.

>>> '1'.zfill(3)
'001'
>>> '89'.zfill(3)
'089'
>>> '189'.zfill(3)
'189'
Run Code Online (Sandbox Code Playgroud)

由于zfill不允许:

>>> def f(n):
...     s = str(n)
...     return '0' * (3 - len(s)) + s
... 
>>> 
>>> for x in [1, 11, 111]: print(f(x))
... 
001
011
111
Run Code Online (Sandbox Code Playgroud)