码迷,mamicode.com
首页 > 编程语言 > 详细

python-布尔表达式

时间:2017-08-13 11:15:11      阅读:460      评论:0      收藏:0      [点我收藏+]

标签:表达式   error:   ace   pre   back   去掉   traceback   bool   程序   

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)

技术分享

 

python-布尔表达式

标签:表达式   error:   ace   pre   back   去掉   traceback   bool   程序   

原文地址:http://www.cnblogs.com/ruo-li-suo-yi/p/7352490.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!