[英]Converting from HEX string to int without removing leading zeroes on Python
[英]Why does Python remove leading zeroes when converting from string to int?
>>> num = int('0241034812')
>>> print(num)
241034812
>>>
在上面的代碼中,我將變量num
設置為0241034812
; 但是,當我打印變量時,它會刪除第一個零。
為什么會這樣?
整數存儲/顯示為“正常”數字,而不是字符串值。 如果要顯示前綴為零的數字,則可以在顯示變量時執行此操作。
您可以使用以下語法將前導零添加到整數:
print "%010d" % (241034812,)
上面的示例將顯示整數241034812,其中10位數字為0241034812
。
我將變量'num'設置為'0241034812'
不,你將它設置為241,034,812:一個整數值,大約二億四千萬。 如果要將其設置為'0241034812'
,則應使用字符串而不是整數。 也就是說,你應該將調用放到int
:
>>> num = '0241034812'
>>> print(num)
0241034812
>>>
您希望將整數打印到特定的零填充寬度,使用字符串格式。 format()
函數 ,例如:
>>> num = 241034812
>>> print(format(num, '010d'))
0241034812
或者首先打印解析整數的原始字符串。
整數不存儲'打印寬度'或任何數字的前導0位數。
如果您以一種前導零有用/重要(可能是條形碼,ISBN等)的格式存儲某些數字,則可以在使用.format
轉換回字符串時重新添加它們。
>>> num = int('0241034812')
>>> print('{:010d}'.format(num))
0241034812
簡而言之,格式規范中的第一個0表示如果不存在則添加前導零以填充10(10)個字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.