在Python中将字符串/字符转换为整数

19 投票
8 回答
87378 浏览
提问于 2025-04-15 17:08

我想把字符串中的一个字符转换成整数,然后加上2,再把它变回字符串。比如,字母A变成C,K变成M,等等。

8 个回答

4

通常情况下,只需要对字符进行排序,然后加上2,再用chr函数转换回来就可以了。不过,Y和Z会给你一些意想不到的结果,比如会变成"["和"\"。

>>> chr(ord("A")+2)
'C'

如果你想把Y和Z改成A和B,可以这样做。

>>> chr((ord("A")-0x41+2)%26+0x41)
'C'
>>> chr((ord("Y")-0x41+2)%26+0x41)
'A'
>>> chr((ord("Z")-0x41+2)%26+0x41)
'B'

这里是从A到Z的对应关系。

>>> [chr((i-0x41+2)%26+0x41) for i in range(0x41,0x41+26)]
['C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'A', 'B']
16

这听起来像是作业,所以我给你一些提示,你可以自己补充其余的部分。

要访问字符串 s 中的单个字符,可以用 s[x],其中 x 是一个整数索引。索引是从 0 开始的。

要获取一个字符的整数值,可以用 ord(c),其中 c 是那个字符。要把一个整数转换回字符,可以用 chr(x)。注意字母在字母表末尾附近的情况哦!

补充:如果你在想 Y 和 Z 应该怎么做时遇到困难,可以留言,我会给你提示。

26

这个操作是通过两个函数来实现的,分别是 chr 和 ord。比如说,chr(ord(ch)+2) 就能完成你想要的效果。这两个函数的详细介绍可以在 这里 找到。

撰写回答