【发布时间】:2016-12-15 09:46:34
【问题描述】:
我对以下代码有疑问:
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: 未找到子字符串
谁能帮我解决我的问题
以下是预期输出的示例:
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()来避免抛出错误? (虽然我猜这会给你错误的结果) -
您应该解释预期的输出和行为是什么 - 例如:空格和感叹号字符应该发生什么?
-
您好,我目前正在使用 find 来查看字母表中存在的字符,但是,我收到以下异常:TypeError: not all arguments convert during string formatting