(共25张PPT)
3.2 Python程序设计
3、分支结构
“关系”是指操作数之间的比较关系。六种关系运算符,用来表示两个操作数之间的大小或相等关系
注意区分赋值运算符“=”和关系运算符“==”
关系运算符和关系表达式
用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式值为布尔值,关系成立,为True,表示“真”;关系不成立,为False,表示“假”
关系运算符和关系表达式
字符串比较实际上是对字符编码的比较。在ASCII字符集中,'a'的ASCII码是97,'b'的ASCII码是98,97 > 98的值为False
避免直接对浮点数进行等于“==”或不等于“!=”比较,浮点数的误差可能造成两个本来应该相等的浮点数不相等
关系运算符和关系表达式
一般使用下列表达式判断x和y是否相等:
变量x和y近似值相等,精确值不相等。利用x和y差值的绝对值的精度是否在允许的误差内来判断x和y是否相等
成员关系运算符in/not in用来判断某个元素是否属于某个序列,返回True或False
成员关系运算符
对象身份运算符is/is not用来判断两个对象是否是同一个对象,返回True或False
注意区分运算符“is”和关系运算符“==”
is判断的是a对象是否就是b对象,是通过id来判断的。a is b等价于id(a) == id(b)
==判断的是a对象的值是否和b对象的值相等
对象身份运算符
三种逻辑运算符
逻辑非:not
逻辑与:and
逻辑或:or
用逻辑运算符将关系表达式或布尔值连接起来的式子称为逻辑表达式。逻辑表达式的值也为布尔值
真值表
逻辑运算符和逻辑表达式
a b not a a and b a or b
True True False True True
True False False False True
False True True False True
False False True False False
逻辑运算符“and”和“or”具有“短路”特性
对于a and b,当a为False时,结果为False,不必再计算b;仅当a为True时,才需计算b
对于a or b,当a为True时,结果为True,不必再计算b,仅当a为False时,才需计算b
德 摩根定律
not (condition1 and condition2) 等价于 not condition1 or not condition2
not (condition1 or condition2) 等价于 not condition1 and not condition2
判断x和y不同时为0的逻辑表达式:
not (x == 0 and y == 0)
更好的写法是:
x != 0 or y != 0
逻辑运算符和逻辑表达式
简化条件
对于:x > 10 and x <= 20,可以简化为:10 < x <= 20
对于:x <= 10 or x > 20,可以简化为:not (10 < x <= 20)
对于:state == "MD" or state == "VA" or state == "WV" or state == "DE",可以简化为:state in ["MD", "VA", "WV", "DE"]
逻辑运算符和逻辑表达式
条件表达式根据某个条件计算一个表达式,语法如下:
表达式1 if 布尔表达式 else 表达式2
布尔表达式,若为“真”,整个条件表达式的计算结果就是表达式1的值;否则,整个条件表达式的计算结果就是表达式2的值
将变量number1和number2的最大数赋值给max_value
max_value = number1 if number1 > number2 else number2
若number是偶数,显示“number is even”;否则,显示“number is odd”
print("number is even" if number % 2 == 0 else "number is odd")
条件表达式
运算符的优先级和结合性决定了运算符的计算顺序
最先计算圆括号内的表达式
计算没有圆括号的表达式时,遵循下表中的优先级(同一行中优先级相同)和结合性
运算符的优先级和结合性
优先级 运算符 结合性
高 **(幂) 左结合
+、-(正号、符号) 右结合
*、/、//、%(乘、除、整除、余数) 左结合
+、-(加、减) 左结合
in、not in、is、is not、<、<=、>、>=、==、!=(关系运算) 左结合
not(逻辑运算) 右结合
and(逻辑运算) 左结合
or(逻辑运算) 左结合
条件表达式 左结合
低 =、+=、-=、*=、/=、//=、%=(赋值运算) 右结合