Crossin的编程教室

标题: 关于if的判断条件 [打印本页]

作者: java007    时间: 2013-11-3 15:47
标题: 关于if的判断条件
本帖最后由 java007 于 2013-11-3 15:55 编辑

Crossin老师 Pyer们 我初学python 碰到一个问题 想请教各位
pyhthon第7课里Crossin老师提到这个 如图thisIslove

我输的程序如图p1
运行结果 如图r1
1)输入True打印 do not leave
2)输入False不打印
3)输入某字符 比如'q' 打印 do not leave

而我认为 输入除True,False之外的其他字符时,应该也不打印才对。否则容易造成错误判断。

此问题来源于这段程序,如图p2

灰色那一行是错的,下一行是对的。
原因就在于这一句是对 '傻' 这个字符以及'聪' not in a这两个句子的判断。
输入 傻,会打印第一个if和第三个if的两行结果。

综上,我的问题是对于那个例子,为什么输入随便一个字符会相当于输入True?

thisIslove.PNG (10.54 KB, 下载次数: 320)

thisIslove

thisIslove

p1.PNG (2.09 KB, 下载次数: 312)

p1

p1

r1.PNG (5.86 KB, 下载次数: 311)

r1

r1

p2.PNG (7.91 KB, 下载次数: 314)

p2

p2


作者: java007    时间: 2013-11-3 15:52
边看教程边等回复
作者: achillesliu    时间: 2013-11-3 23:10
if的判断是以“是否非零”为准的,既然有输入,又不是False,那就要执行
作者: java007    时间: 2013-11-3 23:23
意思是把除False以外的输入都当作True?
不太明白“是否非零”是啥意思。能再解释一下吗?谢谢。
作者: crossin先生    时间: 2013-11-3 23:53
java007 发表于 2013-11-3 23:23
意思是把除False以外的输入都当作True?
不太明白“是否非零”是啥意思。能再解释一下吗?谢谢。 ...

对于其他类型的值,除了0,空字符,空集(如(),[],{}),其他值转换成bool值都是True。
其实这个在后面的某节课里会有讲到的
作者: java007    时间: 2013-11-4 11:04
crossin先生 发表于 2013-11-3 23:53
对于其他类型的值,除了0,空字符,空集(如(),[],{}),其他值转换成bool值都是True。
其实这个在后面的 ...

哦,是这样啊。谢谢。
后面的课程还没看到,不好意思。嗯,我会注意这个的。
已加入笔记。MIT.
作者: achillesliu    时间: 2013-11-6 07:48
其实我也不太懂,还是crossin先生讲的明白




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5