我正在積極學習Python(3.5)並且真正享受它。python crypter(字母轉換)
我想要熟悉字符串操作,因此決定製作一個基本的加密器/解密器,將字符串中的字符串向前移一位。
下面的代碼:
def encrypt(string):
string = string.replace('z', 'a')
string = string.replace('y', 'z')
string = string.replace('x', 'y')
string = string.replace('w', 'x')
string = string.replace('v', 'w')
string = string.replace('u', 'v')
string = string.replace('t', 'u')
string = string.replace('s', 't')
string = string.replace('r', 's')
string = string.replace('q', 'r')
string = string.replace('p', 'q')
string = string.replace('o', 'p')
string = string.replace('n', 'o')
string = string.replace('m', 'n')
string = string.replace('l', 'm')
string = string.replace('k', 'l')
string = string.replace('j', 'k')
string = string.replace('i', 'j')
string = string.replace('h', 'i')
string = string.replace('g', 'h')
string = string.replace('f', 'g')
string = string.replace('e', 'f')
string = string.replace('d', 'e')
string = string.replace('c', 'd')
string = string.replace('b', 'c')
string = string.replace('a', 'b')
return string
def decrypt(string):
string = string.replace('b', 'a')
string = string.replace('c', 'b')
string = string.replace('d', 'c')
string = string.replace('e', 'd')
string = string.replace('f', 'e')
string = string.replace('g', 'f')
string = string.replace('h', 'g')
string = string.replace('i', 'h')
string = string.replace('j', 'i')
string = string.replace('k', 'j')
string = string.replace('l', 'k')
string = string.replace('m', 'l')
string = string.replace('n', 'm')
string = string.replace('o', 'n')
string = string.replace('p', 'o')
string = string.replace('q', 'p')
string = string.replace('r', 'q')
string = string.replace('s', 'r')
string = string.replace('t', 's')
string = string.replace('u', 't')
string = string.replace('v', 'u')
string = string.replace('w', 'v')
string = string.replace('x', 'w')
string = string.replace('y', 'x')
string = string.replace('z', 'y')
string = string.replace('a', 'z')
return string
choice = input('Do you want to decrypt or encrypt a sentence? (d/e)')
question = 'Give me a sentence to %s\n'
if choice == 'd':
encrypted_str = input(question % 'decrypt')
decrypted_str = decrypt(encrypted_str)
print(decrypted_str)
elif choice == 'e':
plaintext = input(question % 'encrypt')
encrypted_str = encrypt(plaintext)
print(encrypted_str)
else:
print('That is not a valid option')
我知道這是不是你應該怎麼做,但我不知道是怎麼回事。
我遇到的問題是,如果我嘗試加密'zaaz',它會給我'bbbb'而不是'abba'。我知道我的錯在哪兒('z'被'a'和'a'替換爲'b'),它是什麼,但不是如何解決它。有人可能會建議一個更好的方法來做到這一點。
P.S.我看到有人使用模運算符將字符串作爲字符串進行文本換行或字符串索引,但我不知道如何在此處實現它。
有什麼建議嗎?
你可能會覺得很有幫助的是,python中的'str'類型是可迭代的 - 你可以編寫像'myStr'中的字符一樣的代碼並單獨查看每個字符......來修復你當前擁有的代碼,而不是完全重新開始你可能想考慮一下! – jambrothers