首页 > 解决方案 > 为什么当我输入一个空字符串('这里没有')时它会忽略我的 while 条件?

问题描述

我有这个代码:

sex = str(input('type sex:')).upper()

while sex not in 'MF':
    sex = str(input('try again: ')).upper()
print('Done!!!')

当我尝试输入几乎任何内容时,它可以很好地用作验证,但是当它是 '' 时,它只会跳过我的 while 循环。我已经尝试在开始时初始化性别字符串,但它没有帮助:c

标签: pythoninputverifier

解决方案


正如 jasonharper 所说,'MF'包含 3 个空字符串。要修复它,您可以将代码更改为:

while sex not in ('M', 'F'):
    sex = str(input('try again: ')).upper()
print('Done!!!')

或者如果你真的想使用'MF',你可以在 while 循环中额外检查一个空字符串:

while not sex and sex not in 'MF':
    sex = str(input('try again: ')).upper()
print('Done!!!')

推荐阅读