04 运算符
1. 运算符
1.1 运算符的概念
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。
1.2 运算符的分类
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)
2. 算术运算符的表现形式
(1)加法运算符 表现形式 +
举例1:
x =1 +2
print('x =',x)
x =3
举例2:
x =1.0 +2
print('x =',x)
x =3.0 ----只要和浮点数做运算,最终结果就会返回浮点数
举例3:
x ='python' +' java' ----字符串做加法运算,就是拼串
print('x =',x)
x = python java
(2)减法运算符 表现形式 -
举例1:
x =5 -2
print('x =',x)
x =3
举例2:减法可以有负数
x =2 -5
print('x =',x)
x = -3
举例3:错误例子
x ='python' -' java'
print('x =',x)
字符串不能用减法!用就会报错TypeError: unsupported operandtype(s)for -:'str' and 'str'
(3)乘法运算符 表现形式 *
举例1:
x =7 * 'a'
print('x =',x)
x = aaaaaaa -----整数与字符串相乘,就是复制字符串
举例2:错误例子
x ='a' *'b'
print('x =',x)
字符串间不可以做乘法运算,否则会报错TypeError: can't multiply sequence by non-int of type 'str'
(4)除法运算符 表现形式 /
举例1:
x =6 /2
print('x =',x)
x =3.0 ----整数或者浮点数做除法运算总会返回浮点类型
举例2:错误例子
x =6 /0
print('x =',x)
除数不能为0,报错ZeroDivisionError: division by zero
举例3:
x ='a' /'b'
print('x =',x)
字符串不能相除,报错TypeError: unsupported operandtype(s)for /:'str' and 'str'
(5)// 整除,只会保留计算后的整数位,总会返回一个整型
(6)% 取余/取模,求两个数相除的余数
(7)** 幂运算,求一个值的几次幂 ,比如:**2 就是某数的二次幂
3. 赋值运算符
例如:a=10 ------- 等号可以讲右边的值赋值给左边的变量
当x=5
复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的
+= (x+= 3 相当于 x = x + 3 )
-= (x -= 3 相当于 x= x - 3 )
*= (x *= 3 相当于 x = x* 3 )
**= (x **= 3 相当于 x = x ** 3 )=125
/= (x /= 3 相当于 x = x/ 3 )
//= (x //= 3 相当于 x = x // 3 )=41
%= (x %= 3 相当于 x= x % 3 )=2
4. 比较运算符
比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
(若比较字符串,比较的是ASCII码的值,如果出现多个字符,则比较方式是对位比较,若对位比较能出的结果就直接返回结果,否则去下一位对位比较,知道比较出结果为止)
> 比较左侧值是否大于右侧值
>= 比较左侧的值是否大于或等于右侧的值
< 比较左侧值是否小于右侧值
<= 比较左侧的值是否小于或等于右侧的值
特殊的比较方式
== 比较两个对象的值是否相等
!= 比较两个对象的值是否不相等
is 比较两个对象是否是同一个对象,比较的是对象的id
is not 比较两个对象是否不是同一个对象,比较的是对象的id
5. 逻辑运算符
主要用于对做逻辑判断
########## True相当于1,False相当于0
5.1 not 逻辑非
not可以对符号右侧的值进行非运算,对于布尔值,非运算会先将其转换为布尔值,然后再取反操作True变False,False变True
对于0、空串、none。。。这些表示空性的值,都会转换为False
5.2 and 逻辑与
and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
与运算是找False的,
如果第一个值为False,则不再看第二个值,返回没东西;
如果第一个值是True,就直接返回第二个值。
5.3 or 逻辑或
或运算两个值中只要有一个True,就会返回True
或运算是找True的,如果第一个值是True,返回没东西。
5.4 非布尔值的与或运算
当我们对非布尔值进行与/或运算时,Python会将其当做布尔值运算,最终会返回原值。
(1)非布尔值 与 运算的规则
与运算是找False的,
如果第一个值是False,则不看第二个值,返回没东西,
如果第一个值是True,则直接返回第一个值,否则返回第二个值。
(2)非布尔值 或 运算的规则
或运算是找True的,
如果第一个值是True,则不看第二个值,返回没东西,
如果第一个值是False,则直接返回第一个值,否则返回第二个值。
6. 条件运算符(三元运算符)
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2 ### 不加冒号
7. 运算符的优先级
运算符优先级参照表:https://docs.python.org/3/reference/expressions.html#operator-precedence
越往下,优先级越高,优先级越高,计算最先
###今日作业
1. 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
2. 以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?(用拼串、参数的传递、占位符%s、f{’变量‘}或者str.format() )
五种方法的代码 运行结果3. 练习课堂中老师敲的代码
网友评论