2014-02-07 56 views
18

我想知道是否有人可以幫助我添加一個前導零到這個現有的字符串時,數字是唱(如1-9)。這裏是字符串:添加領先的零Python

str(int(length)/1440/60) 
+0

有多少個前導零? – thefourtheye

+1

只是一個。所以數字將是01,02等 –

+0

//,這不是重複的,因爲這實際上是指改變變量的值,而不是僅僅以不同的方式顯示。區別很重要,因爲只有http://stackoverflow.com/questions/134934/display-number-with-leading-zeros上的一些答案能夠滿足這種需求。 –

回答

24

您可以使用內置str.zfill方法,這樣

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

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

從文檔,

返回數字串留在串用零填充長度爲 寬度。符號前綴處理正確。如果width小於或等於len(s),則返回原始字符串 。

因此,如果實際字符串的長度大於指定的寬度(參數傳遞給zfill),字符串將按原樣返回。

6

我希望這是最簡單的方法:

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

//,他的問題是關於如何在實際變量中處理這個問題,而不僅僅是打印。 –

+0

這是一個更好的答案。 – Jiminion

14

使用formatstr.format,你不需要到數字轉換爲str

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

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

按照str.format文檔:

這個字符串格式化的方法是Python 3中的新標準,並且 應該優於%格式...