2017-07-04 121 views
0

我正在爲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) 

幫助將非常感激。

回答

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

只會用nopqrstuvwxyzabcdefghijklm替換字母表中的每個字符。

看看str.translate

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)) 
0

我想你想這

import string 

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