如何替换字符串中的单个字符?

时间:2017-07-04 21:02:47

标签: python

我正在为ROT13编写一个小python程序。

如果您不知道它的含义,则意味着它会将字母表中的字母替换为前面的第13个字母,因此'a'将变为'n'。

用户会要求输入,我会将句子中的每个字符替换为前面的第13个字母。

这意味着我需要更换每个角色,现在我该怎么做?

我尝试导入re函数但它没有用。这是我到目前为止所得到的。

import re

Alpha = input("Input the word you would like translated")


Alpha = re.sub('[abcdefghijklmnopqrstuvwxyz]', 'nopqrstuvwxyzabcdefghijklm', 
Alpha)
print(Alpha)

非常感谢帮助。

3 个答案:

答案 0 :(得分:0)

nopqrstuvwxyzabcdefghijklm

只会用{{1}}替换字母表中的每个字符。

看看str.translate

答案 1 :(得分:0)

你可以试试这个:

import string

l = list(string.ascii_lowercase)

new_letters = {a:l[(i+13)%26] for i, a in enumerate(l)}

Alpha = input("Input the word you would like translated")

print(''.join(new_letters[i] for i in Alpha))

答案 2 :(得分:0)

我想你想要这个

import string

inputchar = input('Enter input: ')
printables = [x for x in string.ascii_lowercase]
index = (printables.index(inputchar) + 13)%26
print(printables[index])