赞
踩
目录
一、布尔类型
布尔类型包括的对象仅可能为True或False,这个类型主要用于布尔表达式。
python中提供了一系列布尔比较和逻辑运算。
布尔运算:
大于,a>100 大于等于,a>=100
小于,a<100 小于等于,a<=100
等于,a==100 不等于,a!=100
逻辑运算:
逻辑非,not a
逻辑与,a and b
逻辑或,a or b
二、Python2与Python3中区别
在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。
在Python3中把 True 和 False 定义成关键字了,但他们的值还是1和0。bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True。
三、真假判断
1、python会把数字0,0.0,空字符串、空值none、空对象(包括空元组、空集合、空列表)当作False,其他当作True。
- >>> print(not 0)
- True
- >>> print(not 0.0)
- True
- >>> print(not [])
- True
- >>> print(not None)
- True
- >>> print(not ())
- True
- >>> print(not {})
- True
- >>> print(not '')
- True
- #######注意对象中不为空的时候
- >>> print(not [0])
- False
- >>> print(not [1])
- False
2、逻辑运算and-or
(1)expr1 and expr2
如果expr1为真,表示会去处理expr2并返回expr2的值;
如果expr1为假,表示会直接返回expr1的值,而不会去处理expr2。
- >>> print(True and 0)
- 0
- >>> print(True and not 0)
- True
- >>> print(False and not 0)
- False
(2)expr1 or expr2
如果expr1为真,表示会直接返回expr1的值,而不会去处理expr2;
如果expr1为假,表示会去处理expr2并返回expr2的值。
- >>> print(True or 0)
- True
- >>> print(False or 0)
- 0
(3)多个and:expr1 and expr2 and expr3
and自左向右扫描布尔表达式,如果所有值为真,则返回最后一个为真的表达式,如果为假,则返回第一个为假的表达式。
如果expr1为真,则expr1 and expr2会返回expr2的值,这个时候expr1 and expr2 and expr3可以变换为expr2 and expr3,然后再判断expr2的真假,重复(1)即可;
如果expr1为假,则expr1 and expr2会返回expr1的值,这个时候expr1 and expr2 and expr3可以变换为expr1 and expr3,然后再判断expr1的真假,重复(1)即可;
- >>> print(1 and 0 and 1)
- 0
- >>> print(1 and 1 and 0)
- 0
- >>> print(0 and 0 and 1)
- 0
- >>> print(0 and 1 and 1)
- 0
- >>> print(1 and 1 and 1)
- 1
(4)多个or:expr1 or expr2 or expr3
or的使用与and正好相反,自左向右计算整个布尔表达式,如果有为真的值,那么立刻返回第一个为真的值,如果整个表达式为假,则返回最后一个为假的值。
如果expr1为真,则expr1 or expr2会返回expr1的值,这个时候expr1 or expr2 or expr3可以变换为expr1 or expr3,然后再判断expr2的真假,重复(2)即可;
如果expr1为假,则expr1 or expr2会返回expr2的值,这个时候expr1 or expr2 or expr3可以变换为expr2 or expr3,然后再判断expr1的真假,重复(2)即可;
- >>> print(1 or 0 or 1)
- 1
- >>> print(1 or 1 or 0)
- 1
- >>> print(0 or 0 or 1)
- 1
- >>> print(0 or 1 or 1)
- 1
- >>> print(0 or 0 or 0)
- 0
(5)and-or并列:expr1 and expr2 or expr3
与前面多个and多个or的思路一样:
若expr1为真,则expr1 and expr2会返回expr2的值,这个时候expr1 and expr2 or expr3可以变换为expr2 or expr3,再重复(2)即可;
若expr1为假,则expr1 and expr2会返回expr1的值,个时候expr1 and expr2 or expr3可以变换为expr1 or expr3,再重复(2)即可;
- >>> print(1 and 1 or 0)
- 1
- >>> print(1 and 0 or 1)
- 1
- >>> print(0 and 1 or 0)
- 0
- >>> print(0 and 0 or 1)
- 1
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。