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)

 

posted on 2017-08-13 09:47  箬笠蓑衣  阅读(15094)  评论(0编辑  收藏  举报