一、算数运算
+ 加法运算符(如果是两个字符串之间进行加法运算,则会进行拼串操作)
- 减法运算符
* 乘法运算符(如果将字符串和数字相乘,则会对字符串进行复制操作,将字符串重复指定次数)
/ 除法运算符,运算时结果总会返回一个浮点类型
// 整除,只会保留计算后的整数位,总会返回一个整型
** 幂运算,求一个值的几次幂
% 取模,求两个数相除的余数
运算完成时要将值赋值给变量,否则变量的值不会发生变化
二、赋值运算
赋值运算符
= 将等号右侧的值赋值给等号左侧的变量
+= a += 5 相当于 a = a + 5
-= a -= 5 相当于 a = a - 5
*= a *= 5 相当于 a = a * 5
**= a **= 5 相当于 a = a ** 5
/= a /= 5 相当于 a = a / 5
//= a //= 5 相当于 a = a // 5
%= a %= 5 相当于 a = a % 5
- 验证:
a =10
a += 5
print(a)
a -= 5
print(a)
a *= 5
print(a)
a **= 5
print(a)
a /= 5
print(a)
a //= 5
print(a)
a %= 5
print(a)
- 输出结果:
三、关系运算
关系运算符
关系运算符用来比较两个值之间的关系,总会返回一个布尔值
如果关系成立,返回True,否则返回False
> 比较左侧值是否大于右侧值
>= 比较左侧的值是否大于或等于右侧的值
< 比较左侧值是否小于右侧值
<= 比较左侧的值是否小于或等于右侧的值
== 比较两个对象的值是否相等
!= 比较两个对象的值是否不相等
**相等和不等比较的是对象的值,而不是id**
is 比较两个对象是否是同一个对象,比较的是对象的id
is not 比较两个对象是否不是同一个对象,比较的是对象的id
在Python中对字符串进行比较时,实际上比较的是字符串的Unicode编码,比较两个字符串的Unicode编码时逐位比较。
利用该特性可以对字符串按照字母顺序进行排序。
注意:如果不希望比较两个字符串的Unicode编码,则需要将其转换为数字然后再比较
四、逻辑运算
- not 逻辑非
not可以对符号右侧的值进行非运算
1. 对于布尔值,非运算会对其进行取反操作,True变False,False变True
2. 对于非布尔值,先将其转换为布尔值,然后再取反
- and 逻辑与
and可以对符号两侧的值进行与运算
只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
Python中的与运算是短路的与,如果第一个值为False,则不再看第二个值
- or 逻辑或
or 可以对符号两侧的值进行或运算
或运算两个值中只要有一个True,就会返回True
Python中的或运算是短路的或,如果第一个值为True,则不再看第二个值
- 非布尔值的与或运算(f非布尔值运算返回原数值)
计算规则:对非布尔值进行与或运算时,将其当做布尔值运算,最终会返回原值。
a.与运算的规则
与运算是找False的,如果第一个值是False,则不看第二个值
如果第一个值是False,则直接返回第一个值,否则返回第二个值
b. 或运算的规则
或运算是找True的,如果第一个值是True,则不看第二个值
如果第一个值是True,则直接返回第一个值,否则返回第二个值
- 短路与和短路或 验证
print('短路与验证')
result = 0 and print('test')
print(result)
result = 1 and print('test')
print(result)
print('='*40)
print('短路或验证')
result = 0 or print('test')
print(result)
result = 1 or print('test')
print(result)
print('='*40)
- 运行结果:
五、条件运算(三元运算符)
条件运算符(三元运算符)
语法: 语句1 if 条件表达式 else 语句2
执行流程:
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
#例如下面的判断大小
a = 30
b = 50
print('a的值比b大!') if a > b else print('b的值比a大!')
六、运算优先级
优先级从下向上依次递增