Python3 跳过流程检查
Python3 Skipping Flow Check
我的 python3 永久密码储物柜有点问题。它将密码存储和检索为 expected/desired,但我决定插入一个 "backout" 检查,这样如果输入的信息不正确,您可以返回并重新输入。似乎没有容易识别的原因而跳过此检查。
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 语句中明确说明没有选项,它也跳过了这些选项。多个 'or' 语句是否将其丢弃,或者是否还有其他我应该注意的事情发生?
这一行没有达到您的预期:
if corr == 'yes' or 'y' or 'y':
这转换为 "is corr equal to 'yes'? It's not! So, is the value 'y' True? It is! Let's do this!" 请注意,它不检查 corr 是否等于 'y',只是检查字符串 'y' 是否为 Truthy。
普通方式是:
if corr == 'yes' or corr == 'y':
但你也可以这样做:
if corr in ['yes', 'y', 'Y', 'YES']:
或类似内容以涵盖更多选项
我的 python3 永久密码储物柜有点问题。它将密码存储和检索为 expected/desired,但我决定插入一个 "backout" 检查,这样如果输入的信息不正确,您可以返回并重新输入。似乎没有容易识别的原因而跳过此检查。
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 语句中明确说明没有选项,它也跳过了这些选项。多个 'or' 语句是否将其丢弃,或者是否还有其他我应该注意的事情发生?
这一行没有达到您的预期:
if corr == 'yes' or 'y' or 'y':
这转换为 "is corr equal to 'yes'? It's not! So, is the value 'y' True? It is! Let's do this!" 请注意,它不检查 corr 是否等于 'y',只是检查字符串 'y' 是否为 Truthy。
普通方式是:
if corr == 'yes' or corr == 'y':
但你也可以这样做:
if corr in ['yes', 'y', 'Y', 'YES']:
或类似内容以涵盖更多选项