“ValueError:”“不在列表中”作为错误而不是在elif语句中继续

2024-04-27 22:12:31 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我现在正在用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))

Tags: in密码message列表for字母语句字符