2012-11-03 16 views
-1

我遇到了將數字轉換爲字符串的問題。將數字轉換爲python中的字符串

我想從str(0100)得到一個字符串「0100」,但是我得到的是「64」。有沒有什麼辦法可以做到從0100

UPDATE得到一個字符串「0100」

感謝許多人指出了領先的「0」是八進制的指標。我知道,我想要的是將0100轉換爲「0100」,有什麼建議?

最好的問候,

+0

重新您的更新 - 你可以只使用'OCT(0100)'但是這可能不是你的意圖。你從哪裏獲得整數0100​​?你是從哪裏讀的嗎?也許有更好的方法來解決這個問題,但是你需要爲我們提供一些你的問題的背景。 – del

回答

-1

不知道如果我的理解這個問題......也許你正在尋找這樣的:

'%04o' % 0100 # 0100 
+0

該解決方案在許多其他情況下都會中斷。例如'%04o'%1100返回「2114」 – del

1

你的第一個問題是字面「0100」,因爲它以數字開頭0,被解釋爲八進制,而不是小數。相反,str(100)按預期返回"100"。其次,它聽起來像你想將你的數字填充到一個固定的寬度,你可以用字符串的zfill方法來完成。例如,str(100).zfill(4)返回"0100"

1

的整數應寫爲100,而不是0100

您可以format the string帶前導零這樣的:

 
>>> "%04d" % 100 
'0100' 
0

在Python2,對數字文字的領先0表示這是一個八進制數。這就是爲什麼0100 == 64。這也意味着08000900是語法錯誤

這是一個很有趣的事情,很多人在某個時候被抓到了。

在Python3中,0100是語法錯誤,如果需要編寫八進制文本,則必須使用前綴0o。例如。 0o100 == 64