一、算数运算符
1、加法运算符 +
print(5 + 3) # + 还可以用作字符串的连接运算符 print('Hello' + 'World') 输出结果: 8 HelloWorld
2、减法运算符 -
print(5 - 3) # - 还可以用作求负的运算符 x = 5 print(-x) 输出结果: 2 -5
3、乘法运算符 *
print(5 * 3) # * 还可以用作字符串连接运算符,表示 n 个字符串连接 s = 'xyz ' print(s * 5) 输出结果: 15 xyz xyz xyz xyz xyz
4、除法运算符 / 和 //
/ 表示普通除法,即除不尽时,会产生小数部分;而 // 表示整除,即结果只有整数部分,小数部分将会被舍弃。不允许使用 0 作为除数,否则将会引发 ZeroDivisionError 错误。
a = 15.3 b = 4.2 c1 = a / b c2 = a // b print(c1, type(c1)) print(c2, type(c2)) 输出结果: 3.642857142857143 <class 'float'> 3.0 <class 'float'>
5、求余运算符 %
print(5 % 3) print(5.2 % 3.1) print(-5.2 % -3.1) print(5.2 % -1.5) print(-5.2 % 1.5) 输出结果: 2 2.1 -2.1 -0.7999999999999998 0.7999999999999998
6、乘方运算法 **
print(5 ** 3) print(27 **(1/3)) # 开方 输出结果: 125 3.0
二、赋值运算符
1、基本赋值运算符 =
使用“=”作为赋值运算符,常用于将表达式的值赋给另一个变量,也可使用赋值运算符将一个变量的值赋给另一个变量。
st = "Python" a = b = c = 20
2、扩展赋值运算符
+= | 加赋值 | x += y | x = x + y |
-= | 减赋值 | x -= y | x = x - y |
*= | 乘赋值 | x *= y | x = x * y |
/= | 除赋值 | x /= y | x = x / y |
%= | 取余数赋值 | x %= y | x = x % y |
**= | 幂赋值 | x **= y | x = x ** y |
//= | 取整数赋值 | x //= y | x = x // y |
&= | 按位与赋值 | x &= y | x = x & y |
|= | 按位或赋值 | x |= y | x = x | y |
^= | 按位异或赋值 | x ^= y | x = x ^ y |
<<= | 左移赋值 | x <<= y | x = x << y,这里的 y 指的是左移的位数 |
>>= | 右移赋值 | x >>= y | x = x >> y,这里的 y 指的是右移的位数 |
三、位运算符
& | 按位与 | a & b | 5 & 3 |
| | 按位或 | a | b | 5 | 3 |
^ | 按位异或 | a ^ b | 5 ^ 3 |
~ | 按位取反 | ~a | ~5 |
<< | 按位左移 | a << b | 5 << 3,表示数字 5 按位左移 2 位 |
>> | 按位右移 | a >> b | 5 >> 3,表示数字 5 按位右移 3 位 |
四、比较运算符
> | 大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False |
>= | 大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False |
< | 小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False |
<= | 小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False |
== | 等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False |
!= | 不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False |
is | 判断两个变量所引用的对象是否相同,如果相同则返回 True |
is not | 判断两个变量所引用的对象是否不相同,如果不相同则返回 True |
is 和 == 的区别:== 用来比较两个变量的值是否相等,而 is 则用来比对两个变量引用的是否是同一个对象
a = (1, 2, 3) b = (1, 2, 3) print(id(a), id(b)) # id()返回输入值的内存地址 print(a == b) print(a is b) 输出结果: 17753720 17896720 True False
五、逻辑运算符
and | 逻辑与(简称“与”) | a and b | 有 2 个操作数 a 和 b,只有它们都是 True 时,才返回 True,否则返回 False。 |
or | 逻辑或(简称“或”) | a or b | 有 2 个操作数 a 和 b ,只有它们都是 False 时,才返回 False,否则返回 True。 |
not | 逻辑非(简称“非”) | not a | 只需要 1 个操作数 a,如果 a 的值为 True,则返回 False;反之,如果 a 的值为 False,则返回 True。 |
六、三目运算符
三目运算符的规则是:先对逻辑表达式求值,如果逻辑表达式返回 True,则执行并返回 if 前表达式的值;如果逻辑表达式返回 False,则执行并返回 if 后表达式的值。
a = 5 b = 3 st = "a大于b" if a > b else "a不大于b" print(st) 输出结果: a大于b
python 允许在三目运算符中放置多条语句。python 主要支持以下两种放置方式:
- 多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组成的元组。
- 多条语句以英文分号隔开:每条语句都会执行,程序只返回第一条语句的返回值。
a = 5 b = 3 st = print("python"), 'a大于b' if a > b else "a不大于b" print(st) st = print("python"); x = 20 if a > b else "a不大于b" print(st) print(x) 输出结果: python (None, 'a大于b') python None 20