朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
Python的布尔运算与C语言是有区别的!
在Python中:
•任何非零数字或非空对象都为真。
•数字零、空对象以及特殊对象None都被认作是假。
•比较和相等测试会递归地应用在数据结构中。
•比较和相等测试会返回True或False(1和0的特殊版本)。
•布尔and和or运算符会返回真或假的操作对象。
Python中有三种布尔表达式运算符:
X and Y
如果X和Y都为真,就是真。
X or Y
如果X或Y为真,就是真。
not X
如果X为假,那就是真(表达式返回True或False)。
布尔运算符在Python中是英文单词(在C语言中是符号&&、||和!)。此外,布尔and和or运算符在Python中会返回真或假对象,而不是值True或False。我们来看一些例子,来了解它是怎样工作的。
>>> 2 < 3,3 < 2 # Less-than: return True or False (1 or 0)
(True,False)
在Python中像这类值的比较会返回True或False作为其真值结果。
而and和or运算符会返回对象,不是运算符左侧的对象,就是右侧的对象。
就or测试而言,Python会由左至右求算操作对象,然后返回第一个为真的操作对象。再者,Python会在其找到的第一个真值操作数的地方停止。这通常叫做短路计算:
>>> 2 or 3,3 or 2 # Return left operand if true
(2,3)
>>> [] or 3
3
>>> [] or {}
{}
上一个例子的第一行中,2和3两个操作数都是真(非零),所以Python在左边操作数停止并返回这个操作数。在另外两个测试中,左边的操作数为假(空对象),所以Python只会计算右边的操作数并将其返回。
and运算会由左至右计算操作数,并且停在第一个为假的对象上:
>>> 2 and 3,3 and 2 # Return left operand if false
(3,2)
>>> [] and {}
[]
>>> 3 and []
[]
在这里,第一行的两个操作数都是真,所以Python会计算两侧,并返回右侧的对象。在第二行中,左侧的操作数为假([]),所以Python会在该处停止并将其返回作为结果。在最后一行中,左边为真(3),所以Python会计算右边的对象并将其返回(碰巧是假的[])。
这些最终的结果其实都和C及其他多数语言相同:如果在if或while中,你会得到相等的逻辑真或假。只不过在Python中,布尔返回左边或右边的对象,而不是简单的整数标志位而已。