小白自学笔记之Python入门-第五章 选择-3
下面的内容有点偏难,注意是有点偏,and有点难,一般编程时不会遇到,只有考试时故意出这样的题目用来挖坑等你跳的,所以学会它,就是不掉进去。送出题人(我不会这样出题)一本书:就喜欢你看不惯我又干不掉我的样子,一查居然有三本了(现在已经到5了),俺只看过第一本。

python中逻辑值为False的对象主要有一下几类:
None
False
值为0的数:0、0.0、0.0L等
空字符串:“”
空列表:[]
空字典:{}
空元组:()
空集合:set()
python上述对象除了False以外,其他任何对象都不是False,只是他们的逻辑值是False,两者不是同一种概念,所以对于“[] == False”的结果是False。
在 Python 中,and 和 or 不一定会计算右边表达式的值,有时候只计算左边表达式的值就能得到最终结果。另外,and 和 or 运算符会将其中一个表达式的值作为最终结果,而不是将 True 或者 False 作为最终结果。
比如在print函数中,对于and运算符来说,当第一个对象的逻辑值是False时,输出第一个对象,当第一个对象的逻辑值是True时,输出第二个对象。对于or运算符来说,当第一个对象的逻辑值是False时,输出第二个对象,当第一个对象的逻辑值是True时,输出第一个对象。请看下面的例子:
print(100 and 211)
print(26 and 0)
print("" or "CUP")
print(614 or "http://www.cup.edu.cn")
运行程序结果为:
211
0
CUP
614
对于 and 运算符,两边的值都为真时最终结果才为真,但是只要其中有一个值为假,那么最终结果就是假,所以 Python 按照下面的规则执行 and 运算:
如果左边表达式的值为假,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是假,此时 and 会把左边表达式的值作为最终结果。
如果左边表达式的值为真,那么最终值是不能确定的,and 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
对于 or 运算符,情况是类似的,两边的值都为假时最终结果才为假,只要其中有一个值为真,那么最终结果就是真,所以 Python 按照下面的规则执行 or 运算:
如果左边表达式的值为真,那么就不用计算右边表达式的值了,因为不管右边表达式的值是什么,都不会影响最终结果,最终结果都是真,此时 or 会把左边表达式的值作为最终结果。
如果左边表达式的值为假,那么最终值是不能确定的,or 会继续计算右边表达式的值,并将右边表达式的值作为最终结果。
下面我们看一下比较正常的例子。输入平面上一个点x和y坐标(x,y),判断这个点位于第几象限。

根据上图,可以判断第一象限的表达式为“x>0 and y>0”,其它几个象限可以类似写出。但是还有一个问题,如果我想实现输入一个点坐标值,输出这点位于第几象限如何实现呢?我们需要判断某一条件是否成立,如果成立则输出这一条件对应的象限信息。Ok,keep going to the next section,我们需要学习if语句了。