2016-04-24 35 views
0

(Python 3.5)有沒有辦法將字母(從用戶輸入)更改爲不同的字母?這將像加密程序一樣工作。用戶會寫「Hello」,程序會打印「Gwkki」。在Python中修改I/O數據

H = "G" 
e = "w" 
l = "k" 
o = "i" 
q = input("Message: ") 
print (q[0:4]) 
+0

歡迎使用堆棧溢出。是。你可以例如使用凱撒密碼,您可以在字母表中按照給定的步驟移動所有字母。谷歌,你會發現的例子。您將「hello」分配給一個字符串,然後用例如「一個for循環通過將移位的字符依次附加到空字符串來應用您的密碼。 – roadrunner66

回答

1

是的,你可以簡單地使用str.translate這樣

text = input('Enter your text: ') 

_in = "helo" 
out = "Gwki" 

print(text.translate(text.maketrans(_in, out))) 

就像名字一樣,它「翻譯」(替代)從文本中的每個字母在文本發現_in爲相應的值在out

0

如果您有一套轉換字母的方法,您可以輕鬆地創建一個轉換函數,您將通過輸入並轉換爲必要的字母並將其返回。

例:

你好傳遞給函數變得Gwkki 2009東海生日賀將成爲ikkwg等。

0

假定輸入字符串存儲在inputs中,並且您希望對其進行編碼而不使用內建函數和字符串方法?

transl = {'a':'W', ...} 
encryp = '' 
for e in (transl[c] for c in inputs): encryp += e 

如果字符串方法(不直接施加到inputs)被允許

transl = {'a':'W', ...} 
encryp = ''.join(transl[c] for c in inputs) 

在我們使用dict做翻譯這兩種情況下,構建的編碼的字符序列;加入這些文字,我們可以使用一個for環和字符串連接(在+運營商),或在更地道和有效的方式,使用空字符串及其方法.join()


當然,正確的方式加入其中繼續使用.translate(),如danidee's answer所示。