簡體   English   中英

為什么Python在從string轉換為int時會刪除前導零?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM