1.运算符
1.1 运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
1.2 运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
2. 算术运算符
>>> 1 + 2 #加法运算符 ‘+’
3
>>> 2 - 1 #减法运算符 ‘-’
1
>>> 2 * 3 #乘法运算符 ‘*’
6
>>> 4 / 2 #除法运算符 ‘/’
2.0
>>> 7 // 3 #整除运算符 ‘//’
2
>>> 5 %3 #取模运算符 ‘%’
2
>>> 3 ** 3 #幂运算符 ‘**’
27
- // 整除,只会保留计算后的整数位,总会返回一个整型
- % 取模,求两个数相除的余数
- ** 幂运算,求一个值的几次幂
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
# not 逻辑非
a = 1 # ture
a = not a # False
r = none # 0 空串 none ---> False
r = not r # ture
5.2 and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
# and 逻辑与 找False
r = Ture and Ture # Ture
r = Ture and False # False
r = False and Ture # False
r = False and False # False
Ture and print('Hello world') # Hello world
False and print('Hello world') # False
5.3 or 逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
# or 逻辑或 找Ture
r = Ture and Ture # Ture
r = Ture and False # Ture
r = False and Ture # Ture
r = False and False # False
Ture or print('Hello world') # Ture
False and print('Hello world') # Hello world
5.4 非布尔值的与或运算
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
- 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
- 非布尔值或运算的规则
- 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
## 非布尔值的与或运算
#非布尔值与运算,找False
result = 1 and 2 #2
result = 0 and 2 #0
result = 0 and None #0
result = 2 and 1 #1
#非布尔值或运算,找True
result = 1 or 2 #1
result = 0 or 2 #2
result = 0 or None #None
result = 2 or 0 #2
6. 条件运算符(三元运算符)
image
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
a = 1
b = 5
print('a 的值比较大') if a > b else print('b 的值比较大') # b 的值比较大
# 比较a,b的最大值
a = 2
b = 1
m = a if a > b else b
print(m) #2
7. 运算符的优先级
image
思考
现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值
a = 2
b = 1
c = 3
m1 = a if a>b>c else b
m2 = m1 if b>c else c
print(m2)

image
更多方法
# a b c三个变量 分别保存不同的值 通过条件运算符获取3个值中的最大值
# 第一种写法
a = 150000
b = 2000
c = 300
max = a if a > b else b
max = max if max > c else c
print(max)
# 第二种
max = a if a > b and a > c else b if b > c else c
# max = a if (a > b and a > c) else (b if b > c else c)
print(max)
#高端操作
x,y,z = eval(input('请输入三个数a b c 的最大值'))
a = x
b = y
c = z
if x >= z:
if x >= y:
print('a =',a)
elif y >= z:
print('b =',b)
else:
print('c = ',c)
#用max函数
a = 9
b = 3
c = 6
m = a if a > b > c else max(b,c)
print(m)