所以我现在正在用Python编写一个简单的脚本来处理ROT13密码。我写了一小段代码,理论上应该检查给定的字母是大写、小写,还是不是标点符号之类的字母表。但是,如果我给它一个字母表中没有的字符,比如空格或感叹号,它会抛出一个值错误,并说它不在elif语句引用的列表中,而不是只运行else语句。我能做些什么,如果字符不在字母表列表中,它就不会中断程序?谢谢
作为参考,普通字母表和密码字母表只是包含字母表中每个字母的列表。我知道效率很低,但到目前为止还有效
消息也只是一个字符串
for x in message:
if x in plain_alphabet:
message_list.append(cipher_alphabet[plain_alphabet.index(x)])
elif x in [x.upper() for y in plain_alphabet]:
message_list.append((cipher_alphabet[plain_alphabet.index(x.lower())]).upper())
else:
message_list.append(x)
print(''.join(message_list))
user10987432是对的,
elif x in [x.upper() for y in plain_alphabet]:
应该是elif x in [**y**.upper() for y in plain_alphabet]:
相关问题 更多 >
编程相关推荐