运算符
1.运算符
1.1运算符的概念
- 运算符是用于执行程序代码运算,针对一个以上操作数项目进行运算。比如数学中的加减乘除“+”,“-”,“/”等符号,在python中均是运算符。
1.2运算符的分类
- (1)算术运算符
- (2)赋值运算符
- (3)比较运算符
- (4)比较运算符
- (5)逻辑运算符
- (6)条件运算符
2.算术运算
2.1 算术运算符分类
- 加法运算符,即‘+’
- 减法运算符,即‘-’
- 乘法运算符,即‘ * ’
- 除法运算符,即‘ / ’
- 整除运算符,即‘ // ',整除运算符在除法中运用,整除整除只取整数
- 取余运算符,即’ % ‘,除法运算中计算时,结果只取余数
- 幂运算,即’ ** ‘,求一个数x的多少次幂。
2.2 算术运算符的案例
3.赋值运算
复合赋值运算符 | 含义 |
---|---|
a += b | 相当于a = a + b |
a -= b | 相当于a = a + b |
a *= b | 相当于a = a * b |
a **= b | 相当于a = a ** b |
a /= b | 相当于a = a /b |
a //= b | 相当于a = a // b |
a %= b | 相当于a = a % b |
3.1 案例
a = 3
a+=3
print(a)
6
a=6
a**=2
print(a)
36
a=4
a//=3
print(a)
1
4.比较运算
比较运算符主要用于比较两个值之间的关系,结果是返回一个布尔值True或False
4.1 比较运算分类
比较运算符 | 描述 |
---|---|
> | 比较左侧值是否大于右侧值 |
>= | 比较左侧值是否大于或等于右侧值 |
< | 比较左侧值是否大于右侧值 |
<= | 比较左侧值是否小于或等于右侧值 |
- 特殊比较运算符
特殊比较运算符 | 描述 |
---|---|
== | 比较两个对象的值是否相等 |
!= | 比较两个对象的值是否不相等 |
is | 比较两个对象是否是同一个对象,比较的对象是id,并非是值 |
is not | 比较两个对象是否不是同一个对象,比较的对象是id,并非是值 |
# is运算
r = 0 is False
print(r)
False
#解析:判断0 和False是不是同一个对象,将判断结果Flase或True赋值给r,打印出判断结果Fals
```python
r = 0 == False
print(r)
True
#解析:‘==’比较对象的值,即比较‘0’ 是否等于False,逻辑判断得出0 等于False正确。
r = 1 is not True
print (r)
#解析:r 和 True不是一个对象,逻辑判断结果为True,
r = 1 !=4
print(r)
True
#解析:值1 不等于4 ,逻辑判断的结果为正确
4.2 案例
5. 逻辑运算
5.1 not 逻辑非
- not可以对符号右侧的值进行非运算。对于布尔值非运算对其进行取反操作,True变False,False变True。
5.2 and 逻辑与
- and 可以对符号两侧的值进行与运算。只有符号两侧的值为True时,才会返回True,只有有一个False就会返回False。
注:and 运算符是找False的,如果第一个值为False,则不再看第二个值,直接返回False。
r = True and True
r1 = True and False
r2 = False and True
r3 = False and False
print('第一次r与运算结果为%s'%r)
print('第二次r与运算的结果为%s'%r1)
print('第三次r与运算的结果为%s'%r2)
print('第四次r与运算的结果为%s'%r3)
第一次r与运算结果为True
第二次r与运算的结果为False
第三次r与运算的结果为False
第四次r与运算的结果为False
5.3 or 逻辑或
- 或运算两个值中只要有一个是True,就返回True
注意:or 运算是寻找True,只有有True,就会返回True
r1 = True or True
print('第一次r值得判断结果为%s'%r1)
第一次r值得判断结果为True
r = False or True
print('第二次r值的判断结果为%s'%r)
第二次r值的判断结果为True
r = False or False
print('第三次r值的判断结果为%s'%r3)
第三次r值的判断结果为False
5.4 非布尔值得与或运算
1. 什么是非布尔值得与或运算?
即,我们计算的对象的值不是布尔值。如:1,2,3等数字符,a,v等字母。非布尔值得运算有自己的运算规则。
2. 非布尔值的运算规则
- 2.1 与(and)运算
与运算是找False,若第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值。
案例:
r = 1 and 2
print(r)
2
解析:
根据非布尔值得and 运算规则,我们寻找是False。计算机首先对第一个值1判断为布尔值True,则计算机继续判断第二个值2是否为False,结果第二个值2为True,则返回第二个值2
r_1 = 0 and 2
print(r_1)
0
- 2.2 非布尔值的或运算规则
或运算是找True,如果第一个值是True,则不看第二个值,则直接返回第一个值,否则直接返回第二个值。
y = 1 or 0
print(y)
1
解析:根据非布尔值的or运算规则,当计算机寻找到第一个是值为True时,则返回第一个值。
y_1 = 0 or 1
print(y_1)
1
6. 条件运算符
-
条件运算符又称三元运算符,我的理解是三元运算符是有三部组成:两个语句和一个表达式,因此称为三元运算符。
-
语法
语句1 + if 条件表达式 else +语句2
####注意不要忘记else,表达式后面不加冒号: -
执行流程:
执行时,先对表达式进行求值判断,如果是True则执行语句1,并返回执行结果;如果表达式求值判断为False,则执行语句2,并返回执行结果 -
案例 1-1`
a= 10
b = 30
print(f'a大于b执行的结果为:{a-b}') if a > b else print(f'小于b执行的结果为{b-a}')
小于b执行的结果为20
案例1-2
#求a 和 b之间的最大值
a = 300
b = 40
print(f'如果a大于b ,\n我们求得a和b之间的最大值是:{max(range(40,300))}') if a > b else print(f'如果a 小于b ,\n我们求得a和b之间的最小值是:{min(range(0,40))}')
如果a大于b ,
我们求得a和b之间的最大值是:299
案例1-3
a = 300
c = 100
print(f'如果a大于c ,\n我们求得a和c之间的最大值是:{max(range(100,300))}') if a > c else print(f'如果a 小于c ,\n我们求得a和c之间的最小值是:{min(range(100,300))}')
如果a大于b ,
我们求得a和b之间的最大值是:299
.
7.运算符的优先级
参考:
https://docs.python.org/3/reference/expressions.html#operator-precedence