python - 为什么当我输入空字符串 ('nothing here' 时它会忽略我的 while 条件?

标签 python inputverifier

我有这个代码:

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

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

当我尝试输入几乎任何内容时,它作为验证工作正常,但是当它是“”时,它只会跳过我的 while 循环。 我一开始就尝试过初始化性别字符串,但没有帮助:c

最佳答案

正如 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!!!')

关于python - 为什么当我输入空字符串 ('nothing here' 时它会忽略我的 while 条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61706636/

相关文章:

java - 用户输入验证应该在类级别还是 UI 级别进行?

java - Swing 焦点丢失输入 validator

java - 以编程方式设置文本时 InputVerifier 未激活

python - 在 Python 中将来自两个不同字典的值相乘

python - 明智地合并元组列表并将其转换为列表列表

python - Keras 分类交叉熵 softmax input.dim_size 错误

java - 如何使用正则表达式验证 JTable 的第一列?

python - 返回语句时速度慢

python - 是否有 Python 的 "safe"子集用作嵌入式脚本语言?