python - 为什么当我输入一个空字符串('这里没有')时它会忽略我的 while 条件?
问题描述
我有这个代码:
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!!!')
推荐阅读
- django - 在 Django 频道中创建多个通信器
- javascript - 使用 react-autoBind 时 ReactJs setState 未定义
- python - 在 atype 值之后,没有日期格式
- reactjs - MaterialUI:纸张或卡片标题
- java - 房间数据库 DAO 查询到带有 int 值的 SUM() 列并返回它...使用 MVM 模型
- jmeter - Jmeter 为 SQL 查询返回“语句未返回结果集”
- spring-cloud-config - 带有 JDBC 的 Spring config server 抛出 Invalid config server configuration 错误
- python - Keras 神经网络准确率仅为 10%
- unity3d - 在 Unity 3D 中移动游戏对象的最佳方式
- javascript - 当 React 中的状态发生变化时,HighCharts 不会更新