我需要将一串数字转换为字母串形成单词示例:如果您的程序输入是1920012532082114071825463219200125320615151209190846则应该返回保持饥饿状态。保持愚蠢。
我有一个程序可以将一个单词转换为一串数字:
string = raw_input('Please enter your string of lowercase characters: ')
Dictionary = {'a':'00', 'b':'01', 'c':'02', 'd':'03', 'e':'04', 'f':'05',
'g':'06', 'h':'07', 'i':'08', 'j':'09', 'k':'10', 'l':'11',
'm':'12', 'n':'13', 'o':'14', 'p':'15', 'q':'16', 'r':'17',
's':'18', 't':'19', 'u':'20', 'v':'21', 'w':'22', 'x':'23',
'y':'24', 'z':'25', ' ':'32', '.':'46'}
n = ''
p= 0
for character in string:
n += Dictionary[string[p]]
p += 1
print n
所以我需要制作一个程序,它接受数字串(n)并将其转换回原始单词。
真的不知道该怎么做,所以任何帮助都会受到赞赏!
答案 0 :(得分:0)
创建一个包含键和值的字典:
revdict = dict([v,k] for k,v in Dictionary.items())
一次扫描输入的两个字符并使用反向字典进行转换。 请记住,您可以使用索引来访问字符串的不同部分:
"12345"[0:2] # returns "12"
答案 1 :(得分:0)
首先,您不需要通过索引访问字符,循环中定义的character
变量实际上会在每个字符向前移动时存储:
for character in string:
n += Dictionary[character]
然后你也不需要p
。
现在,问你的问题:
ord()
方法获取给定字符的ascii表示。在Google上查找ascii表以了解这一点。
然后,如前所述,您需要做的就是一次遍历字符串两个字符(这里按索引迭代会很有用),将这些值转换为整数然后将该整数转换为字符。
我打算发布一个完整的算法。但我后来意识到这可能是功课。无论哪种方式,我在这里给你的就足够了。