【问题标题】:Add leading Zero Python [duplicate]添加前导零 Python [重复]
【发布时间】:2014-03-04 10:37:58
【问题描述】:

我想知道当数字唱歌时是否有人可以帮我在这个现有字符串中添加前导零(例如 1-9)。这是字符串:

str(int(length)/1440/60)

【问题讨论】:

  • 多少个前导零?
  • 只有一个。所以数字将是 01、02 等。
  • // ,这不是重复的,因为这指的是实际更改变量的值,而不仅仅是以不同的方式显示它。区别很重要,因为只有stackoverflow.com/questions/134934/… 的部分答案可以满足这一需求。

标签: python string


【解决方案1】:

使用formatstr.format,无需将数字转换为str

>>> format(1, '02')
'01'
>>> format(100, '02')
'100'

>>> '{:02}'.format(1)
'01'
>>> '{:02}'.format(100)
'100'

根据str.format 文档:

这种字符串格式化方法是 Python 3 中的新标准,并且 应该优先于 % 格式...

【讨论】:

  • 但是如果我有一个像a = "abc" 这样的字符串,那么format(a, "05") 不起作用
  • @winklerrr,对于非数字,使用format(a, '>05')
  • @winklerrr 该问题与原始问题无关。这个问题不是关于验证输入,而是关于修改当前数据。
  • @dmcoding 这就是我添加评论的原因(我直接得到了答案)。那么你的问题是什么?
【解决方案2】:

我希望这是最简单的方法:

 >>> for i in range(1,15):
 ...     print '%0.2d' % i
 ...
 01
 02
 03
 04
 05
 06
 07
 08
 09     
 10
 11
 12
 13
 14
 >>>

【讨论】:

  • // ,他的问题是关于如何在实际变量中处理这个问题,而不仅仅是打印。
  • 一般来说这是一个更好的答案。
【解决方案3】:

你可以使用内置的str.zfill方法,像这样

my_string = "1"
print my_string.zfill(2)   # Prints 01

my_string = "1000"
print my_string.zfill(2)   # Prints 1000

来自文档,

返回一个长度为 0 的数字字符串 宽度。正确处理符号前缀。原始字符串是 如果宽度小于或等于 len(s),则返回。

因此,如果实际字符串的长度大于指定的宽度(传递给zfill 的参数),则字符串按原样返回。

【讨论】:

  • 太好了。如果您只需要单个数字的尾随 0,str.zfill() 只会添加到那些实际上是单个数字的数字。例如,7 变为 07,但 10 将保持 10 而不会变为 010。
猜你喜欢
  • 2013-06-11
  • 2018-12-21
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-05
相关资源
最近更新 更多