运算符
运算符的概念
运算符用于执行程序代码运算,会针对⼀个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
1、算术运算符
- 加法运算符 表现形式 +
- 减法运算符 表现形式 -
- 乘法运算符 表现形式 *
- 除法运算符 表现形式 /
- // 整除,只会保留计算后的整数位,总会返回⼀个整型
- % 取余,求两个数相除的余数
- ** 幂运算,求⼀个值的几次幂
2、赋值运算符
赋值运算符的特殊写法 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 )
3、比较运算符(关系运算符)
比较运算符用来比较两个值之间的关系,总会返回⼀个布尔值.如果关系成立,返回True,否则返回False
- “>” 比较左侧值是否大于右侧值
- “>=” 比较左侧的值是否大于或等于右侧的值
- “<” 比较左侧值是否小于右侧值
- “<=” 比较左侧的值是否小于或等于右侧的值
特殊的比较方式
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同⼀个对象,比较的是对象的id
- is not 比较两个对象是否不是同⼀个对象,比较的是对象的id
(两个对象相等和两个对象是同⼀个对象是两个概念)
4、逻辑运算符
4.1、not 逻辑非
not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
>>># 0 空串 还有一些比如表示空性的值会转换为False 剩下的全部都是True
>>>a=1
>>>a=not a
>>>print(a)
False
>>>a=''
>>>a=not a
>>>print(a)
True
>>>a=[]
>>>a=not a
>>>print(a)
True
4.2、and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有⼀个False就返回False
- 逻辑与运算是找False的,如果第⼀个值为False,则不再看第二个值,直接返回第一个值(False)
>>>a=True and False
>>>print(a)
False
>>>a=True and True
>>>print(a)
True
4.3、or 逻辑或
- 或运算两个值中只要有⼀个True,就会返回True
- 或运算是找True的
>>>a=True or False
>>>print(a)
True
4.4、非布尔值的与或运算
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
- 与运算是找False的,如果第⼀个值是False,则不看第⼆个值,直接返回第⼀个值。如果第⼀个值是True,则直接返回第⼆个值
- 非布尔值或运算的规则
- 或运算是找True的,如果第⼀个值是True,则不看第⼆个值,直接返回第⼀个值。如果第⼀个值是False,则直接返回第二个值。
>>>a=1 and 0
>>>print(a)
0
>>>a=3 and 1
>>>print(a)
1
>>>a=0 and 3
>>>print(a)
0
>>>a=0 or 1
>>>print(a)
1
>>>a= 1 or 2
>>>print(a)
1
>>>a= 3 or 1
>>>print(a)
3
5、条件运算符(三元运算符)
条件运算符在执行时,会先对条件表达式进行求值判断 如果判断结果为True,则执行语句1,并返回执行结果 如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2
>>>#比较三个值的大小,得到最大值
>>>a = 10
>>>b = 20
>>>c = 5
>>>n = a if a > b else b
>>>m = n if n > c else c
>>>print(m)
20