簡體   English   中英

類型轉換錯誤:Python

[英]Error in Type casting: Python

我剛剛開始學習python,並且由於編寫的函數出現以下錯誤。 我認為這是由於類型轉換造成的,但我不確定如何更正。

錯誤我得到:

File "validate.py", line 23, in keygen
(array3[0]) = int(array2[0]) ^ int(array2[n-1],8)
ValueError: invalid literal for int() with base 10: '0xd4d745957e685d08L'

功能:

def keygen(array2):
    n = len(array2)
    array3[0] = int(array2[0]) ^ int(array2[n-1],8)
    i = 1
    while(i != n):
        array3[i] = array2[i] ^ array3[i-1]
        i = i + 1
    printarray(array3)

這里的array2是一個十六進制值的數組,如下所示:

 array2: [0xd4d745957e685d08L,
          0x9a542ff214aa011cL,
          0x1289806cf20e724L,
          0x20dd453feea65bf4L,
          0x209ab70c8a12a914L,
          0xa16cde82faf9de54L,
          0x99c60b68361506d4L,
          0x5b98ffaaf450a3d4L,
          0xe5c75e967b0bbbe9L]

array3是一個空數組,其中插入了新值。

由於array2包含十六進制值,因此必須使用int(array2 [0],16)將其轉換為整數值。 您需要從數組中刪除結尾的L或使用類似下面的內容。

array3[0] = int(str(array2[0])[:18], 16) ^ int(str(array2[n-1])[:18], 16)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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