2017-08-29 123 views
2

所以,當我運行:ValueError異常Python中使用長()時

value = long("00000000000000020000000000000002", 16) 

我得到:

ValueError: Value out of range: 36893488147419103234 

我想這是因爲長期不能採取這麼大的十六進制數,但我我不確定。

實際上,我通過一個包含大量十六進制數字的文件迭代,但這只是我試圖解析的十六進制數字之一的示例。

我試過使用lstrip()刪除一些0的,但它沒有差錯的錯誤。

我在做什麼錯?

+9

無法在2.7.13上覆制更長的數字。 –

+5

FYI,在Python 3中'value = int(「00000000000000020000000000000002」,16)'正常運行('int'代替Python 2的'long')。 –

+0

我也無法在python2.7.12上覆制。你使用什麼版本?你確定'ValueError'在處理的某個步驟中沒有被髮射嗎? – mgilson

回答

-1

該錯誤是由我試圖分配值的變量而不是實際的long()函數引起的。

+3

不正確。對名稱進行簡單賦值不會引發值錯誤。 –

+0

我在提出問題之前簡化了代碼。實際上,我試圖把這個數字分配給一個protobuff字段(不知道它是否是正確的名字),而這個數字並沒有取得這樣的數字。只要我將它分配給一個python var,就沒有錯誤發生。最後我意識到我甚至不需要在那裏存儲數字,所以我最終並不在意...... 對不起所有的困惑 – Rikg09