如何在Python中用零填充数字字符串?

yuc*_*cer 13 python string

Python字符串有一个调用的方法zfill,允许用左边的零填充数字字符串.

In : str(190).zfill(8)
Out: '00000190'
Run Code Online (Sandbox Code Playgroud)

如何让垫子在右边?

Nar*_*asK 17

请参阅格式规范迷你语言:

In [1]: '{:<08d}'.format(190)
Out[1]: '19000000'

In [2]: '{:>08d}'.format(190)
Out[2]: '00000190'
Run Code Online (Sandbox Code Playgroud)


Man*_*ela 11

作为更可移植的[1]和高效的[2]的替代,实际上您可以只使用str.ljust

In [2]: '190'.ljust(8, '0')
Out[2]: '19000000'

In [3]: str.ljust?
Docstring:
S.ljust(width[, fillchar]) -> str

Return S left-justified in a Unicode string of length width. Padding is
done using the specified fill character (default is a space).
Type:      method_descriptor
Run Code Online (Sandbox Code Playgroud)

[1]格式在旧的python版本中不存在。自Python 3.0(请参阅PEP 3101)和Python 2.6之后,添加了格式说明符。

[2]两次反转是一项昂贵的操作。


yuc*_*cer 5

Hint: The string can be inverted twice: before and after using the zfill method:

In : acc = '991000'

In : acc[::-1].zfill(9)[::-1]
Out: '991000000'
Run Code Online (Sandbox Code Playgroud)

Or even more easier:

In : acc.ljust(9, '0')
Out: '991000000'
Run Code Online (Sandbox Code Playgroud)