我在使用python3持久性密码锁时遇到了一些麻烦。它按预期/期望存储和检索密码,但我决定插入"退出"检查,如果输入的信息不正确,您可以返回并重新输入。它似乎是在没有容易识别的原因的情况下跳过此检查。
elif choice == 2:
conti = False
while conti != True:
print('Enter an account and password to store')
acc = input('Account: ')
apass = input('Password: ')
print('Account: ' + acc + '\n' + 'Password: ' + apass)
print('Correct?')
corr = input(': ')
corr.lower()
if corr == 'yes' or 'ye' or 'y':
print('Making Changes persistent')
# Shelve Stuff
conti = True
break
else:
print('Please make appropriate changes.')
continue
当我运行此代码时,无论corr变量是什么,它都会使更改持久化。这不是我想要的。我尝试在elif语句中明确说明没有选项,它也跳过了那些选项。是多个'还是'抛弃它的说法或者我还应该注意其他事情吗?
答案 0 :(得分:1)
这条线没有做到你所希望的:
if corr == 'yes' or 'y' or 'y':
这意味着"等于'是'?不行!那么,价值是' y'真正?它是!让我们这样做!"请注意,它没有检查corr是否等于' y'只是字符串' y'是Truthy。
最简单的方法是:
if corr == 'yes' or corr == 'y':
但您也可以这样做:
if corr in ['yes', 'y', 'Y', 'YES']:
或类似的内容以涵盖更多选项