python-布尔表达式
1、布尔表达式
条件语句和循环语句都使用布尔表达式作为条件
布尔值为真或假,以False和True表示,前面经常使用布尔表达式比较两个值,如:while x>=0
2、布尔操作符
(1)布尔操作符: and,or和 not
布尔运算符and和or用于组合两个布尔表达式,并产生一个布尔结果
<expr> and <expr>
<expr> or <expr>
not运算符是一个一元运算符,用来计算一个布尔表达式的反
not <expr>
(2)Python中布尔操作符的优先级,从高分到低分依次是not、 and最低是or。
所以上面的达式等于如下这个带括号的版本
壁球比赛计分例子
a和b代表两个壁球选手的分数
规则1:只要一个选手达到了15分,本场比赛就结束; 如果一方打了七分而另一方一分未得时,比赛也会结束
if (a==15 or b==15)or (a==7 and b==0) or (a==0 and b==7): print('比赛结束')
规则2:需要一个团队赢得至少两分才算赢,即其中一个队已经达到了15分,且分数差异至少为2时比赛结束
if (a==15 or b==15)or (a==7 and b==0) or (a==0 and b==7): print('比赛继续')
(3)布尔代数
(4)布尔表达式作为决策
只要用户响应一个“Y” 程序就继续。为了让用户输入一个大写或小写,可以使用以下的循环:
对于序列类型来说,一个空序列被解释为假,而任何非空序列被指示为真
1 >>> bool(0) 2 False 3 >>> bool(1) 4 True 5 >>> bool(32) 6 True 7 >>> bool(y) 8 Traceback (most recent call last): 9 File "<pyshell#6>", line 1, in <module> 10 bool(y) 11 NameError: name 'y' is not defined 12 >>> bool('y') 13 True 14 >>> bool('') 15 False 16 >>> bool([]) 17 False
这里可以解释,下面的程序,是判断response[0]等于y,或者Y,由于Y是bool型中始终为True,所以始终符合条件,形成死循环。注意布尔条件的拆分与组合。
3、布尔表达式-简洁表示
(1)如果用户仅仅简单敲下回车键,可以使用方括号中的值作为默认值
1 ans=input("what sports do you want[football]:") 2 if ans!="": 3 sport=ans 4 else: 5 sport='football' 6 print(sport)
(2)布尔语句简化
1 ans=input("what sports do you want[football]:") 2 if ans: 3 sport=ans 4 else: 5 sport='football' 6 print(sport)
去掉!=‘’后,只要判断的bool语句是True,就执行。
(3)简化
1 ans=input("what sports do you want[football]:") 2 sport=ans or 'football' 3 print(sport)