python-3.x - 流控中真假是如何实现的?
问题描述
name = ''
while True:
Print('Please type your name')
name = input()
if name == 'Your name':
break
print('Thank you')
如果空字符串和 0 是假值,而其他是真值。为什么“while”循环设置为“True”,字符串为空并且代码运行?
解决方案
如果您要问为什么循环在设置为空字符串(falsey)时开始,name
那是因为循环本身并不关心.name
它正在使用True
,嗯,几乎总是正确的:-)
因此,循环是一个无限循环,唯一的出路是通过break
如果您输入的名称与语句中的字符串匹配时触发的if
语句。
如果你有类似的东西:
name = ''
while name:
blahBlahBlah()
那么循环不会开始,因为空字符串被认为是错误的。
推荐阅读
- qt - UIC 生成的头文件无法识别包含自定义小部件头的路径
- node.js - 如何检查 json 数组是否包含 Nodejs 中的重复值?
- r - 缩放或移动地图后以 png 格式导出传单
- java - 在 Java 中为 TreeSet 创建新的比较器
- regex - Codemirror simplemode 插件为函数创建正则表达式
- powerbi - 有没有办法在电源查询代码中使用 if exists 语句?
- amazon-web-services - 无法将 RDS 数据库连接到 Lambda 函数(使用无服务器框架)
- java - 使用 editText gettext 更改 Android 操作栏标题文本
- javascript - 搜索脚本的问题我无法从导航栏获取良好的属性到 vue.js 中的 searchcomponent
- reactjs - 如何在反应中使用复选框形式?