在Python中将字符转换为int,反之亦然

Posted

技术标签:

【中文标题】在Python中将字符转换为int,反之亦然【英文标题】:Converting character to int and vice versa in Python 【发布时间】:2014-07-22 02:05:27 【问题描述】:

我有一个外部应用程序,它在数据开头附加数据包的长度。类似于以下代码:

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 之前进行一些解码。谁能给我一个关于从解码中使用什么函数的指针,或者是否有更简单的方法来完成这个?

【问题讨论】:

How can I convert a character to a integer in Python, and viceversa?的可能重复 【参考方案1】:

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

请注意,您的代码仅适用于最长为 255 的长度,因为这是对 chr()ord() 的最大支持。

【讨论】:

谢谢! ord() 在 2.6 中可用吗?【参考方案2】:
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

【讨论】:

字母解决方案很有用。如果他们认为 A 为 0 到 Z 为 25,您可以- 65 istead。

以上是关于在Python中将字符转换为int,反之亦然的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中将 Int 转换为 String,反之亦然(不使用像 sstream 这样的库)

如何在python3.6中将字符串转换为唯一的整数,反之亦然(在0到255之间)

如何在python中将unsigned char类型的int字符串转换为int

JavaScript中将字符串类型转换为整形的函数

如何在 C++ 中将数字转换为字符串,反之亦然

python怎么把列表转换成字符串?