1 运算符的概念
· 运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。
如:2+3,其操作数是2和3,⽽运算符则是“+”。
2 运算符的分类
2.1 算术运算符
表现形式 | 含义 |
---|---|
+ | 加法运算符 |
- | 减法运算符 |
* | 乘法运算符 |
/ | 除法运算符 |
// | 除法运算,整除 |
% | 除法运算,取余 |
** | 幂运算 |
除数运算总会返回一个浮点类型
除数不能为0
整除只会保留计算后的整数位
取余为两个数值相除的余数
幂运算求一个值得几次幂
2.2 赋值运算符
s = 10
“=”为赋值运算符,也就是把右侧的数值,赋值给左侧
赋值运算符的特殊写法: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 )
- **= (x ** = 3 相当于 x = x ** 3 )
- //= (x // = 3 相当于 x = x // 3 )
- %= (x % = 3 相当于 x= x % 3 )
2.3 比较运算符
⽐较运算符⽤来⽐较两个值之间的关系,总会返回⼀个布尔值。如果关系成⽴,返回True,否则返回False。
符号 | 含义 | 示例 |
---|---|---|
> | ⽐较左侧值是否⼤于右侧值 | ![]() |
< | ⽐较左侧值是否⼩于右侧值 | ![]() |
>= | ⽐较左侧的值是否⼤于或等于右侧的值 | ![]() |
<= | ⽐较左侧的值是否⼩于或等于右侧的值 | ![]() |
多位比较时,比较方式为对位比较。如果第一位比较出结果,就直接返回结果,没有比较出来,再比较第二位,依次顺延。
特殊的比较方式
符号 | 含义 | 示例 |
---|---|---|
== | ⽐较两个对象的值是否相等,比较的是对象的value | ![]() |
!= | ⽐较两个对象的值是否不相等,比较的是对象的value | ![]() |
is | ⽐较两个对象是否是同⼀个对象,⽐较的是对象的id | ![]() |
is not | ⽐较两个对象是否不是同⼀个对象,⽐较的是对象的id | ![]() |
2.4 逻辑运算符
2.4.1 not 逻辑非
- not可以对符号右侧的值进⾏⾮运算。 对于布尔值,⾮运算会对其进⾏取反操作,如:True变False,False变True
- 如果符号右侧的值不是布尔值,则先把此值转换成布尔值,在进行运算。
- 空串,0,None,还有一些比如表示为空性的值会转换为False;剩余的所有值全部都是True。*
2.4.2 and 逻辑与
- and可以对符号两侧的值进⾏与运算。 只有在符号两侧的值都为True时,才会返回True,只要有⼀个False就返回False。
- 与运算是找False,如果第⼀个值为False,则不再看第⼆个值。
2.4.3 or 逻辑或
- 或运算两个值中只要有⼀个True,就会返回True。 只有在符号两侧的值都为False时,才会返回False,只要有⼀个True就返回True。
- 或运算是找True,如果第⼀个值为True,则不再看第⼆个值。
2.4.4 非布尔值的与或运算
· 当我们对⾮布尔值进⾏与或运算时,Python会将其当做布尔值运算,最终会返回原值
- ⾮布尔值与运算的规则
与运算是找False的,如果第⼀个值是False,则不看第⼆个值;
如果第⼀个值是False,则直接返回第⼀个值,否则返回第⼆个值。 - ⾮布尔值或运算的规则
或运算是找True的,如果第⼀个值是True,则不看第⼆个值;
如果第⼀个值是True,则直接返回第⼀个值,否则返回第⼆个值。
2.5 条件运算符(三元运算符)
语法:“语句1” if “条件表达式” else “语句2”
条件运算符在执⾏时,会先对条件表达式进⾏求值判断
如果判断结果为True,则执⾏语句1,并返回执⾏结果
如果判断结果为False,则执⾏语句2,并返回执⾏结果
2.6 运算符的优先级
运算符优先级参照表:越往下,优先级越高