繁体   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