我遇到了將數字轉換爲字符串的問題。將數字轉換爲python中的字符串
我想從str(0100)得到一個字符串「0100」,但是我得到的是「64」。有沒有什麼辦法可以做到從0100
UPDATE得到一個字符串「0100」
感謝許多人指出了領先的「0」是八進制的指標。我知道,我想要的是將0100轉換爲「0100」,有什麼建議?
最好的問候,
我遇到了將數字轉換爲字符串的問題。將數字轉換爲python中的字符串
我想從str(0100)得到一個字符串「0100」,但是我得到的是「64」。有沒有什麼辦法可以做到從0100
UPDATE得到一個字符串「0100」
感謝許多人指出了領先的「0」是八進制的指標。我知道,我想要的是將0100轉換爲「0100」,有什麼建議?
最好的問候,
不知道如果我的理解這個問題......也許你正在尋找這樣的:
'%04o' % 0100 # 0100
該解決方案在許多其他情況下都會中斷。例如'%04o'%1100返回「2114」 – del
你的第一個問題是字面「0100」,因爲它以數字開頭0,被解釋爲八進制,而不是小數。相反,str(100)
按預期返回"100"
。其次,它聽起來像你想將你的數字填充到一個固定的寬度,你可以用字符串的zfill
方法來完成。例如,str(100).zfill(4)
返回"0100"
。
在Python2,對數字文字的領先0
表示這是一個八進制數。這就是爲什麼0100 == 64
。這也意味着0800
和0900
是語法錯誤
這是一個很有趣的事情,很多人在某個時候被抓到了。
在Python3中,0100是語法錯誤,如果需要編寫八進制文本,則必須使用前綴0o
。例如。 0o100 == 64
重新您的更新 - 你可以只使用'OCT(0100)'但是這可能不是你的意圖。你從哪裏獲得整數0100?你是從哪裏讀的嗎?也許有更好的方法來解決這個問題,但是你需要爲我們提供一些你的問題的背景。 – del