簡體   English   中英

在Python中將字符轉換為int,反之亦然

[英]Converting character to int and vice versa in Python

我有一個外部應用程序,在數據的開頭附加數據包的長度。 類似下面的代碼:

x = "ABCDE"
x_len = len(x)
y = "GHIJK"
y_len = len(y)
test_string = chr(x_len) + x + chr(y_len) + y
#TODO:perform base64 encoding

在代碼的客戶端,我需要能夠提取x_len和y_len並且可以讀取x和y。

#TODO:perform base64 decoding
x_len = int(test_string[0])
x = test_string[:x_len]

我收到以下錯誤:ValueError:int()的基數為10的無效文字:'\\ x05'

我假設int的參數是十六進制的,所以我在傳遞給int之前需要做一些解碼。 有人可以給我一個指針,說明從解碼中使用什么功能,或者有沒有更簡單的方法來完成這個?

你可能想要ord() ,而不是int() ,因為ord()是與chr()相反的操作。

請注意,您的代碼僅適用於長度最大為255代碼,因為這是最大的chr()ord()支持。

t="ABCDE"

print reduce(lambda x,y:x+y,[ord(i) for i in t])

#output 335

ord的用法:用於將字符轉換為ascii值。

在某些情況下,他們只考慮字母A:1 --- Z:26在這種情況下使用

ord('A')-64結果1因為我們知道ord('A')是65

暫無
暫無

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

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