对于我正在处理的项目,我需要能够将一串数字转换为字母以形成正确的单词。例如,我需要将2626转换为BFBF,但我如何确保它不会变成ZZ,反之亦然。
我非常困惑,因为我想不出任何方法可以实现这一点,我需要这个程序将数字转换成原始字母。
任何帮助都会非常感激,因为我不知道该怎么办......
谢谢!
编辑:如果没有使用数字列表,似乎这是不可能的,所以现在我需要找到一种方法来用列表替换我的字符串。问题是我正在制作一个公钥加密加密器/解密器,我不知道如何对数字进行数学运算,而不是它们是一个字符串。 (它不适用于列表,例如,如果我必须对数字,1212,我可以很容易地用1212 ^ 2这样做。但是如果列表是[12,1,2],我不知道如何将它平方以得到与1212 ^ 2相同的答案。)任何帮助都会很棒,再次感谢!
答案 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