在Python中,如何指定格式将int转为字符串?

24 投票
5 回答
67045 浏览
提问于 2025-04-16 04:42

在Python中,我该如何指定格式将整数转换为字符串呢?

更具体地说,我想要的格式是给字符串前面加零,以保持字符串的长度是固定的。例如,如果我设定的固定长度是4:

  • 1会被转换成"0001"
  • 12会被转换成"0012"
  • 165会被转换成"0165"

对于大于这个固定长度能表示的最大整数(在我的例子中是9999),我没有特别的要求。

我该如何在Python中实现这个呢?

5 个回答

8

使用python3格式和新版本3.6格式化字符串字面量,你可以用f""的方式来写代码:

>>> i = 5
>>> "{:4n}".format(i)
'   5'
>>> "{:04n}".format(i)
'0005'
>>> f"{i:4n}"
'   5'
>>> f"{i:04n}" 
'0005'
22

你可以使用 str 类的 zfill 函数。用法如下 -

>>> str(165).zfill(4)
'0165'

当然,也可以像其他人建议的那样用 %04d 等方式。但我觉得这是一种更符合 Python 风格的方法...

26

"%04d" 这里的4是固定的长度,这个格式可以实现你所描述的效果。

你可以在这里了解字符串格式化的相关内容。

关于Python 3的更新:

{:04d} 是使用 str.format 方法或 format 内置函数时的等价格式。详细信息可以查看格式说明小语言的文档。

撰写回答