(Python 3.5)有沒有辦法將字母(從用戶輸入)更改爲不同的字母?這將像加密程序一樣工作。用戶會寫「Hello」,程序會打印「Gwkki」。在Python中修改I/O數據
H = "G"
e = "w"
l = "k"
o = "i"
q = input("Message: ")
print (q[0:4])
(Python 3.5)有沒有辦法將字母(從用戶輸入)更改爲不同的字母?這將像加密程序一樣工作。用戶會寫「Hello」,程序會打印「Gwkki」。在Python中修改I/O數據
H = "G"
e = "w"
l = "k"
o = "i"
q = input("Message: ")
print (q[0:4])
是的,你可以簡單地使用str.translate
這樣
text = input('Enter your text: ')
_in = "helo"
out = "Gwki"
print(text.translate(text.maketrans(_in, out)))
就像名字一樣,它「翻譯」(替代)從文本中的每個字母在文本發現_in
爲相應的值在out
如果您有一套轉換字母的方法,您可以輕鬆地創建一個轉換函數,您將通過輸入並轉換爲必要的字母並將其返回。
例:
你好傳遞給函數變得Gwkki 2009東海生日賀將成爲ikkwg等。
假定輸入字符串存儲在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所示。
歡迎使用堆棧溢出。是。你可以例如使用凱撒密碼,您可以在字母表中按照給定的步驟移動所有字母。谷歌,你會發現的例子。您將「hello」分配給一個字符串,然後用例如「一個for循環通過將移位的字符依次附加到空字符串來應用您的密碼。 – roadrunner66