运算符
一. 算数运算符
- 加法运算符(+):计算两个数字之和。如果是两个字符串做加法运算,就是字符串的拼接;
a = 10 + 5 #计算
b = 'hello' + ' ' + 'world' #字符串的连接
- 减法运算符(-):计算两个字符串之差。字符串之间不能做减法运算;
a = 10 - 5 #计算
b = 5 - True #结果为4
c = 'hello' - 'h' #报错,TypeError
- 乘法运算符(*):计算两数乘积。如果将字符串将数字相乘,则会对字符串进行复制操作,
将字符串重复指定次数;
a = 5 * 5 #计算
- 除法运算符(/):结果总会返回一个浮点类型;
a = 10 / 5 #a为2.0
b = 5 / 2 #b为2.5
- 整数运算符(//):结果保留计算后的整数位,总会返回一个整型;
a = 10 // 5 #a为2
b = 5 // 2 #b为2
- 幂运算(**):求一个数的n次幂;
a = 2 ** 2 #a为4
b = 10 ** 3 #b为1000
c = 16 ** 0.5 #c为4,就是16开根号
- 模运算(%):求两个数相除的余数。
a = 10 % 4 #a为2
b = 10 % 2 #b为0
二. 赋值运算符
- = 可以将等号右侧的值赋给等号左边的变量;
a = 10
- +=
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
;
三. 关系运算符
关系运算符用来比较两个值之间的关系,结果返回一个bool值;
如果关系成立返回True,否则返回False。
- 大于(>)
- 大于等于(>=)
- 小于(<)
- 小于等于(<=)
- 等于(==)
- 不等于(!=)
- 这些比较运算符都是比较对象的值;
- 数字和字符串之间不能进行比较;
- 字符串之间可以进行比较,比较规则:逐位比较两个字符串中字符对应的Unicode编码;
- is
- is not
is 和 is not 比较的是对象的id,判断两个对象是否为同一个对象;
a = 1 is True
print('a = ',a) #输出False,因为True的值是1,
# 但是他们占用不同的空间,属于不同的对象,id不同
四. 逻辑运算符
- not 逻辑非
- not可以对右侧的值进行非运算;
- 对于布尔值,非运算会直接取反;
- 对于非布尔值,非运算会先将其转换为布尔值,然后再取反;
- and 逻辑与
- and会对符号两侧的值进行与运算;
- 只有在符号两侧的值都为True时,才会返回True,只要有一个False就会返回False;
- 如果第一个值为False,则不再看第二个值,直接返回False;
- or 逻辑或
- or 可以对两侧的值进行或运算;
- 或运算中只要有一个True,就会返回True;
- 如果第一个值为 True,则不再看第二个值,直接返回 True;
对于非布尔值的逻辑运算:python会将其当做布尔值运算,最终返回原值。
五. 条件运算符
语法: 语句1 if 条件表达式 else 语句2
执行流程:条件运算符在执行时,会先对条件表达式进行求值判断,
如果判断结果为True,则执行语句1,并返回执行结果;
如果判断结果为False,则执行语句2,并返回执行结果。
a = 10
b = 40
c = 30
m = a if a > b else b #获取两个变量中较大值
#获取三个变量的最大值
mm = a if a > b and a > c else (b if b > c else c)
六. 补充
- 运算符的优先级(从低到高)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j0H36OEl-1645428156711)(运算符_优先级.png)] - 逻辑运算符可以连着使用
1 < 2 < 3
相当于1 < 2 and 2 < 3