bool变量及运算
现实生活中我们经常会碰到一些关于是否的问题,比如"你学过Python么?","你喜欢我们的教程么?","1+1等于2么?"。
在Python中我们用True
和False
来回答这一类的问题,True
和False
就是所谓的bool
值,注意他们的首字母都是大写哦。
在Python中有一系列的逻辑操作符号来帮助我们实现关于是否的判断,我们先来看一下最简单的相等判断,在Python中一个等号表示赋值,连续两个等号表示相等判断:
print 1 + 1 == 2
既然有了相等判断自然也有不相等判断,用一个感叹号加上一个等号:
print 1 + 1 != 2
除此之外Python还提供了在离散数学中常见的两个操作and
和or
。
and
可以连接两个表达式,只要有一个表达式的结果为False
整个表达式的结果即为False
,只有当两个表达式结果都为True
整个表达式的结果才为True
。可以把and
想象成一个严厉的判官,宁可错杀一千不可放过一个,一点错就把整个人否决掉。
or
同样连接两个表达式,只要有一个表达式的结果为True
整个表达式的结果即为True
,只有当两个表达式结果都为False
整个表达式的结果才为False
。可以把or
想象成一个仁慈的判官,只要还有一点是对的,那么就对整个人肯定。
它们的处理关系如下表所示:
expr1 | expr2 | expr1 and expr2 | expr1 or expr2 |
---|---|---|---|
True | True | True | True |
True | False | False | True |
False | True | False | True |
False | False | False | False |
可以试下面的例子:
print 1 + 1 == 2 and 1 + 1 == 3
print 1 + 1 == 2 or 1 + 1 == 3
除了上面两个性格不同的判官外,还有一个专门颠倒黑白的判官not
他可以把True
变成False
把False
变成True
。
print not 1 + 1 == 2
print not False
此外在编程中我们经常会碰到一类问题,即一个变量是不是在一个list或者dict中存在,最原始的想法就是拿这个list或dict中的每个变量和当前变量比较看看是不是相等,这么做写起代码来可就麻烦了,为此Python又用了一种优雅的方式解决了,既然你要解决一个变量在不在一组变量里这个问题,就新定义个操作就叫"在"吧,这就是我们的in
操作:
print 1 in [1, 2, 3]
print 4 not in [1, 2, 3]
{$ activeFileHint $}