Python基础第四课-运算符
1 运算符
1.1 运算符的概念
- 运算符⽤于执⾏程序代码运算,会针对⼀个以上操作数项⽬来进⾏运算。例如:2+3,其操作数是2和3,⽽运算符则是“+”
1.2 运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
2 算术运算符
运算符类型 | 表现形式 |
---|---|
加法 | + |
减法 | - |
乘法 | * |
除法 | / |
整除,只会保留计算后的整数位,总会返回⼀个整型 | // |
取模,求两个数相除的余数 | % |
幂运算,求⼀个值的⼏次幂 | ** |
3 赋值运算符
复制运算符的特殊写法 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 |
4 比较运算符
- ⽐较运算符⽤来⽐较两个值之间的关系,总会返回⼀个布尔值.如果关系成⽴,返回True,否则返回False
- | 比较符号 | 代表含义 |
|–|--|
| > | ⽐较左侧值是否⼤于右侧值 |
|>=|⽐较左侧的值是否⼤于或等于右侧的值|
|<|⽐较左侧值是否⼩于右侧值|
|<=|⽐较左侧的值是否⼩于或等于右侧的值|
|特殊情况下比较符号|表示含义|
|==|⽐较两个对象的值是否相等|
|!=|⽐较两个对象的值是否不相等|
|is|⽐较两个对象是否是同⼀个对象,⽐较的是对象的id|
|is not|⽐较两个对象是否不是同⼀个对象,⽐较的是对象的id|
5 逻辑运算符
5.1 not逻辑非
- not可以对符号右侧的值进⾏⾮运算对于布尔值,⾮运算会对其进⾏取反操作,True变False,False变True
5.2 and逻辑与
- and可以对符号两侧的值进⾏与运算。 只有在符号两侧的值都为True时,才会返回True,只要有⼀个False就返回False
- 与运算是找False的,如果第⼀个值为False,则不再看第⼆个值
5.3 逻辑或
- 或运算两个值中只要有⼀个True,就会返回True
- 或运算是找True的
5.4 非布尔值的与或运算
- 当我们对⾮布尔值进⾏与或运算时,Python会将其当做布尔值运算,最终会返回原值
- ⾮布尔值与运算的规则
- 与运算是找False的,如果第⼀个值是False,则不看第⼆个值。直接返回第⼀个值,否则返回第⼆个值
- ⾮布尔值或运算的规则
- 或运算是找True的,如果第⼀个值是True,则不看第⼆个值。直接返回第⼀个值,否则返回第⼆个值
6 条件运算符(三元运算符)
条件运算符在执⾏时,会先对条件表达式进⾏求值判断
如果判断结果为True,则执⾏语句1,并返回执⾏结果
如果判断结果为False,则执⾏语句2,并返回执⾏结果
语法: 语句1 if 条件表达式 else 语句2
- #获取三个值的最大值
a=10
b=7
c=38
m=a if a>b else b
n=m if m>c else c
print(n)
⚠️:这个不是if语句,是三元运算符
7 运算符的优先级
运算符优先级参照表
- a= 2 or 3 and 4
情况1:or与and优先级一样高。or 逻辑或运算返回第一个值2 ,and逻辑与运算返回后一个值4
情况2:or比and优先级高。返回结果值4.
情况3:and比or优先级高。返回值2.(实际结果) - a= not 4>2 and 5<6 or 3<4
优先级降幂排序:not>and>or
a=FALSE and TRUE or TRUE=FALSE or TRUE=TRUE - a=not(4>2 and 5<6 or 3<4)
a=FALSE
运算符 | 描述 |
---|---|
yield x | 生成器函数send协议 |
lambda args : expression | 创建匿名函数 |
x if y else z | 三元选择表达式(仅当y为真时,x才会被计算 |
x or y | 逻辑或(仅当x为假时,y才会被计算) |
x and y | 逻辑与(仅当x为真时,y才会被计算) |
not x | 逻辑非 |
x in y,x not in y | 成员关系(可迭代对象、集合) |
x is y,x is not y | 对象同一性测试 |
x < y, x <= y, x >y,x>=y | 大小比较、集合的子集和超集 |
x== y,x !=y | 值等价性运算符 |
x l y | 按位或、集合并集 |
x ^ y | 按位异或、集合对称差集 |
x & y | 按位与、集合交集 |
x <<y, x>>y | 将x左移或右移y位 |
x + y | 加法、拼接 |
x - y | 减法、集合差集 |
x * y | 乘法、重复 |
x % y | 求余数、格式化 |
x / y, x // y | 真除法、向下取整除法 |
-x , +x | 取负、取正 |
~x | 按位非(取反码) |
x ** y | 幂运算(指数) |
x[ i ] | 索引(序列、映射等) |
x[ i : j : k] | 分片 |
x(…) | 调用(函数、方法、类,其他可调用对象) |
x.attr | 属性引用 |
(…) | 元组、表达式、生成器表达式 |
[…] | 列表、列表推导 |
{…} | 字典、集合、集合与字典推导 |