将一串数字转换为相应的字母

时间:2015-05-31 03:37:13

标签: python converter

对于我正在处理的项目,我需要能够将一串数字转换为字母以形成正确的单词。例如,我需要将2626转换为BFBF,但我如何确保它不会变成ZZ,反之亦然。

我非常困惑,因为我想不出任何方法可以实现这一点,我需要这个程序将数字转换成原始字母。

任何帮助都会非常感激,因为我不知道该怎么办......

谢谢!

编辑:如果没有使用数字列表,似乎这是不可能的,所以现在我需要找到一种方法来用列表替换我的字符串。问题是我正在制作一个公钥加密加密器/解密器,我不知道如何对数字进行数学运算,而不是它们是一个字符串。 (它不适用于列表,例如,如果我必须对数字,1212,我可以很容易地用1212 ^ 2这样做。但是如果列表是[12,1,2],我不知道如何将它平方以得到与1212 ^ 2相同的答案。)

任何帮助都会很棒,再次感谢!

1 个答案:

答案 0 :(得分:0)

使用chr()可以将int转换为字母,例如。 print chr(97)打印a。 如果您可以使用某些符号来标识组,可能是' - ',在数字之间,那么这是一个简单的问题。如果不是,你会遇到模糊的映射,如你所提到的那样。

例如,您可以创建一个数字到字母的字典:

alphabet_dict = {}
for abet in range(1, 27):
    alphabet_dict[abet] = chr(96+abet)

print alphabet_dict

打印:

{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f', 7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k', 12: 'l', 13: 'm', 14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't', 21: 'u', 22: 'v', 23: 'w', 24: 'x', 25: 'y', 26: 'z'}

现在,如果我们决定使用符号分隔符,那么我们可以使用内置的split()将我们的字符串分解为一个列表,然后使用上面的字典将这些值(数字)映射到字母表中: / p>

s = '2-6-2-6'
def convert_num_to_alpha(num_string):
    num_list = num_string.split('-')
    abet_string = ''
    for num in num_list:
        abet_string = abet_string+alphabet_dict[int(num)]
    return abet_string 

print convert_num_to_alpha(s) # prints: bfbf
print convert_num_to_alpha('26-26') # prints: zz

编辑:如何将数字字符串(例如'2-6-2-6')转换为int

这是hackish但是如果你需要对数字进行算术运算,我将其存储为字符串,你可以这样做:

print int('2-6-2-6'.replace('-', ''))  # prints: 2626