运算符
一、什么是运算符
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。举个简单的例子 4 +5 = 9 。 例子中,4 和 5 被称为操作数,"+" 称为运算符。
Python语言支持以下类型的运算符:
算术运算符
赋值运算符
比较(关系)运算符
逻辑运算符
条件运算符(三元运算符
运算符优先级
下面我们一个个学习运算符知识
二、认识运算符
算数运算符
以下假设两个变量:a = 6, b = 9
运算符 | 实例 |
---|---|
+ | a +b -> 15 |
- | a - b -> -3 |
* | a * b-> 54 |
/ | a / b -> 0.666 |
% | 取余数:b%a->3 |
** | a**b-> 10077696 |
// | 整除(商的整数部分)b//a-> 1 |
>>> a=6
>>> b=9
>>> a/b
0.6666666666666666
>>> b%a
3
>>> a%b
6
>>> a**b
10077696
>>> b//a
1
赋值运算符
= (c = a + b 将 a + b 的运算结果赋值为 c)
+= (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 )
比较运算符
比较运算符用来比较两个值之间的关系,如果关系成立,返回True,否则返回False
== 比较对象是否相等 (4 == 5) 返回 False。
!= 比较两个对象是否不相等 (4 != 5) 返回 true.
is 比较两个对象是否同一个对象,比较的是对象的id
is not 比较两个对象是否不是同一个对象.
>>> id(4)
4331888400
>>> id(5)
4331888432
'> (10 > 12) 返回 False。
< (10 < 12) 返回 true。
'>= (10 >= 12) 返回 False。
<= (12 <= 13) 返回 true。
逻辑运算符
not 非
布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。
and 与
- 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值
- 同真为真,有一个假即为假,以false为大
or 或
- 或运算两个值中只要有一个True,就会返回True
- 以True 为大
非布尔值的与或运算
当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
• 非布尔值与运算的规则AND (&&)
找False:
- 如果第一个值为true,则返回第二个值
- 如果第一个值为false,则返回第一个值
举证 | 说明 |
---|---|
1&&2 ->2 | 两个true返回后者 |
0 && 2 -> 0 | 两者有一个false,则false |
2&&0->0 | 两者有一个false,则false |
NaN && 0-> NaN | 两者有false,则返回前面的false |
0 && NaN -> 0 | 两者有false,则返回前面的false |
• 非布尔值或运算的规则OR (||)
找True:
- 如果第一个值为true,则返回第一个值
- 如果第一个值为false,则返回第二个值
举证 | 说明 |
---|---|
1 or 2 ->1 | 两个true返回前者 |
2 or 0 -> 2 | 两者有一个true,则true |
2 or NaN -> 2 | 两者有一个true,则true |
NaN or 1-> 1 | 两者有一个true,则true |
NaN or 0-> 0 | 两个false,则返回后面的false |
“” or “hello” -> “hello” | 两者有一个true,则true |
-1 or "hello " -> -1 | 两个true返回前者 |
"hello " or -1 -> "hello " | 两个true返回前者 |
条件运算符(三元运算符)
语法: 语句1 if 条件表达式 else 语句2
条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
举证:
两个数字最最大值
a,b = 6,9
print(a if a>b else b)
给定三个数值,求最大值。
a,b,c = 12,25,18
(a if a>b else b) if (a if a>b else b) >c else c
a,b,c = 12,25,18
print((a if a>b else b) if (a if a>b else b) >c else c)
三个数字比大小思路:先求前两个最大值,然后拿得到的最大值跟第三个比较。
运算符的优先级
具体参照:Python 运算符