1 运算符的概念
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例
如:2+3,其操作数是2和3,而运算符则是“+”
2 运算符的分类
算术运算符
赋值运算符
比较运算符(关系运算符)
逻辑运算符
条件运算符(三元运算符)
2.1 算术运算符
加法运算符 表现形式 +
a=1+2
print(a) # 3
减法运算符 表现形式 -
a = 5 - 2
print(a) # 3
b = 5 - True #True代表1 False代表0
print(b) # 4
乘法运算符 表现形式 *
b=2*3
print(b) # 6
a = 2 * 'abv'
print(a) # ‘abvabv’
除法运算符 表现形式 /
a = 5 / 3
print(a) # 1.6666666666666667
// 整除,只会保留计算后的整数位,总会返回亿个整型
x = 11 // 3
print(a) # 3 取整 整除
% 取模,求两个数相除的余数
a = 5 % 3
print(a) # 1 取模(取余)
** 幂运算,求一个值的几次幂
a = 2 ** 4
print(a) # 2的4次方等于16
使用幂运算的一种开平方的方式 会返回一个浮点类型
a = 25 ** 0.5
print(a) # 25 开平方为 5.0
2.2 赋值运算符
+= (x+= 3 相当于 x = x + 3 )
a=3
a += 2
print("a=",a) # a = 5
-= (x -= 3 相当于 x= x - 3 )
a=3
a -= 2
print("a =",a) # a = 1
*= (x = 3 相当于 x = x 3 )
a=3
a *= 2
print("a =",a) # a = 6
/= (x /= 3 相当于 x = x/ 3 )
a=6
a /= 2
print("a =",a) # a = 3.0 返回浮点类型
**= (x **= 3 相当于 x = x ** 3 )
a=3
a **= 3
print(a) # a = 27
//= (x //= 3 相当于 x = x // 3 )
a=7
a //= 3
print(a) ## a = 2 取整数
%= (x %= 3 相当于 x= x % 3 )
a=7
a %= 3
print(a) # a = 1 取余数
2.3 比较运算符
比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
比较左侧值是否大于右侧值 >
a = 10 > 20
print(a) # False
b= 20 > 10
print(b) # True
比较左侧的值是否大于或等于右侧的值 >=
a = 10 >= 10
print(a) # True
比较左侧值是否小于右侧值 <
a = 10 < 20
print(a) # True
比较左侧的值是否小于或等于右侧的值 <=
a = 10 <= 10
print(a) # True
比较两个字符之间的大小比较的是字符所对应的ascii值
a = 'c' > 'b'
print(a) # True
如果出现多个字符,那么我们比较是采用的对位比较
a='bc' > 'ba'
print(a) # True
特殊的比较方式
== 比较两个对象的值是否相等
a = 6 == 6
print(a) # True
!= 比较两个对象的值是否不相等
r = 'abc'!='bca'
print(r) # True
is 比较两个对象是否是同一个对象,比较的是对象的id
a=b=5
c=5
print (id(a)) # 1383427680
print (id(b)) # 1383427680
print (id(c)) # 1383427680
print(a is b) # True
print(a is c) # True
a=b=(1,2,3)
c=(1,2,3)
print (id(a)) # 7662904
print (id(b)) # 7662904
print (id(c)) # 7663264
print(a is b) # True
print(a is c) # False
is not 比较两个对象是否不是同一个对象,比较的是对象的id(与is结果相反)
a=b=5
c=5
print (id(a)) # 1383427680
print (id(b)) # 1383427680
print (id(c)) # 1383427680
print(a is not b) # False
print(a is not c) # False
a=b=(1,2,3)
c=(1,2,3)
print (id(a)) # 41479480
print (id(b)) # 41479480
print (id(c)) # 41479840
print(a is not b) # False
print(a is not c) # True
2.4 逻辑运算符
not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操
作,True变False,False变True
对于非布尔值 非运算会将其先转换成布尔值,然后在进行取反操作
例如 0、 空串、 None…这些表示空性的值转换为False,剩下的全部都是True
2.4.1 not 逻辑非
a = 456 # 456被转换为True
b = not a
print('b =',b) # b = False
a = None # None被转换为False
a = not a
print('a =',a) # a = True
2.4.2 and 逻辑与
and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
与运算是找False的,如果第一个值为False,则不再看第二个值
a,b,c=123,456,789
r1= a<b and b<c # True and True
print(r1) # 结果为 True
r2= a<b and b>c # True and False
print(r2) # 结果为 False
r3= a>b and b<c # False and True
print(r3) # 结果为 False
r4= a>b and b>c # False and False
print(r4) # 结果为 False
2.4.3 or 逻辑或
或运算两个值中只要有⼀个True,就会返回True, 或运算是找True的
a,b,c=123,456,789
r1= a<b or b<c # True or True
print(r1) # 结果为 True
r2= a<b or b>c # True or False
print(r2) # 结果为 True
r3= a>b or b<c # False or True
print(r3) # 结果为 True
r4= a>b or b>c # False or False
print(r4) # 结果为 False
2.4.4 非布尔值的与或运算
当我们对非布尔值进行与或运算时Python会将其当做布尔值运算最终会返回原值
⾮非布尔值与运算的规则
与运算是找False的,如果第一个值是False,则不看第二个值。直接返回第一个值,否则返回第二个值
print(1 and 2) # 第一个职为True返回第二个值,结果为2
print(0 and 1) # 第一个职为False返回第一个值,结果为0
⾮非布尔值或运算的规则
或运算是找True的,如果第一个值是True,则不看第二个值。直接返回第一个值,否则返回第二个值
print(2 or 1) # 第一个职为True返回第一个值,结果为2
print(0 or 1) # 第一个职为False返回第二个值,结果为1
2.5 条件运算符(三元运算符)
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
a,b=20,30
print(a if a>b else b) # 30
print(a if a<b else b) # 20
现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a,b,c=20,50,40
print((a if a>c else c) if a>b else (b if b>c else c))
# 结果为50