我有一個問題關於下面這段代碼:的Python鍛鍊的V @ genere代碼
ALPHA = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
def main():
encrypt_code = codeer('NOBODY EXPECTS THE SPANISH INQUISITION!', 'CIRCUS')
print("{}".format(encrypt_code))
print("{}".format(decrypt('CIRCUS', encrypt_code)))
def codeer(tekst, sleutel):
pairs = zip(tekst, cycle(sleutel))
code = ""
for pair in pairs:
total = reduce(lambda x, y: ALPHA.index(x) + ALPHA.index(y), pair)
code += ALPHA[total % 26]
return code;
該代碼會崩潰,因爲該郵件包含一個空白和一個!標誌。
total = reduce(lambda x, y: ALPHA.index(x) + ALPHA.index(y), pair) ValueError: substring not found
任何人可以幫助我與我的問題
以下是預期輸出的一個例子:
codeer('NOBODY EXPECTS THE SPANISH INQUISITION!', 'CIRCUS')
'PWSQXQ MORYUVA VBW AGCHAUP KHIWQJKNAQV!'
decodeer('PWSQXQ MORYUVA VBW AGCHAUP KHIWQJKNAQV!', 'CIRCUS')
'NOBODY EXPECTS THE SPANISH INQUISITION!'
使用['find()'](https://docs.python.org/2/library/string.html#string.find)避免引發錯誤? (雖然這會給你錯誤的結果,我猜) – UnholySheep
你應該解釋什麼是預期的輸出和行爲 - 例如:什麼應該與空白和感嘆號字符發生? – UnholySheep
你好,我目前使用查找字符中存在的字符,但是,我得到以下異常: TypeError:並非在字符串格式化期間轉換的所有參數 – Michael