算数运算符,就是数学上面的基本的运算符:加+、减-、乘*、除/、幂**、取余%以及取整//
| 运算符 | 描述 | 例子 |
|---|---|---|
| + | 可用于数字、序列等类型数据操作,对于数字类型就是求和;其他类型表示连接操作 | a + b |
| - | 减法运算符,用于求差 | a - b |
| * | 可用于数字、序列等类型数据操作,对于数字类型就是求积;其他类型表示重复操作 | a * b |
| / | 除法运算符,用于求商 | a / b |
| % | 取余运算符,用于求余数 | a % b |
| ** | 幂运算符,用于求幂 | a ** b |
| // | 取整运算符,求小于商的最大整数 | a // b |
基本的运算:
>>> 1 + 2 3 >>> 'hello' + 'world' 'helloworld' # 将前后两个字符串进行拼接 >>> 'hello' + 2 # can only concatenate str (not "int") to str Traceback (most recent call last): File "", line 1, in TypeError: can only concatenate str (not "int") to str >>> 2 - 1 1 >>> 2 * 3 6 >>> 'hello' * 2 'hellohello' # * 几就是重复几遍 >>> 3 / 2 1.5 >>> 3 % 2 1 >>> 3 ** 2 9 >>> 3 // 2 1
注:python在进行除法运算的时候会自动将数转换为双精度浮点型来进行计算,以防止结果精度的丢失,那怕你可以整除,也会先行转换,再运算,结果返回一个float,所以如果需要一个整型可以使用//,它会去除结果的小数,返回一个int;但要求//左右都要为int型,有一个float型的数,结果也为float
>>> 4 / 2 2.0 >>> type(4 / 2)2 关系运算符>>> 4 // 2 2 >>> 4 // 2.0 2.0
| 运算符 | 说明 | 例子 |
|---|---|---|
| == | 用于判断两边的内容是否相等 | a == b |
| != | 用于判断两边的内容是否不相等 | a != b |
| > | 用于判断左边的值是否大于右边 | a > b |
| < | 用于判断左边的值是否小于右边 | a < b |
| >= | 用于判断左边的值是否大于等于右边 | a >= b |
| <= | 用于判断左边的值是否小于等于右边 | a <= b |
判断数值是,关系运算符主要判断其值的关系,判断字符串类型的时候是逐个判断字符的ASCII码值,相等继续下一个,直到出现不相等,全部相等则两个字符串相同
>>> a = 1 >>> b = 2 >>> 1.0 == a True >>> 1.0 != a False >>> a > b False >>> a < b True >>> a >=b False >>> a <= b True >>> a = 'hello' >>> b = 'hello' >>> a == b True >>> a == 'hello1' False >>> a > b False >>> a < b False
python还提供了连续比较运算 例如:a > b > c,相当于a > b and b > c( 两个比较加加上逻辑运算符)
3 逻辑运算符python支持逻辑运算符,但是python取消了传统的与&&、或||、非!,取而代之的是and or not
| 运算符 | 名称 | 说明 | 例子 |
|---|---|---|---|
| and | 逻辑与 | 当两边同为True,才返回True | a and b |
| or | 逻辑或 | 只要两边有一个为True,就返回True | a or b |
| not | 逻辑非 | 右边值为True,返回False,反则反之 | not a |
注:and操作符拥有短路的功能,即遇到False就直接结束判断
>>> bool(print(1)) 1 False >>> print(1) and print(2) 1 >>> print(1) or print(2) 1 24 位运算符
位运算就是将数字看出二进制来进行计算。
-
&(按位与运算符)
-
语法:a & b
-
作用:将a, b对应的二进制数的对应位进行与运算
- 与运算: 有0返回0,全1返回1
-
例子:
>>> 25 & 30 24 计算过程: 25 --> 0001 1001 30 --> 0001 1110 0001 1001 & 0001 1110 --------------- 0001 1000 ----> 24
-
-
| (按位或)运算符
-
语法:a | b
-
作用:将a, b对应的二进制数的对应位进行或运算
- 或运算:有1返回1,全0返回0
-
例子:
>>> 25 | 30 31 计算过程: 25 --> 0001 1001 30 --> 0001 1110 0001 1001 | 0001 1110 --------------- 0001 1111 ----> 31
-
-
~(位反运算符)
-
语法:~a
-
作用:将a对应的二进制数按位取反
- 取反:0变1,1变0
-
例子:
>>> ~10 -11 计算过程: 10 --> 0000 1010 ~ 0000 1010 --------------- 1111 0101 --> 469 ? -11
解释,为什么~10结果是-11而不是469:
在计算机中符号数有三种表示方式:原码、补码和反码。这三种表示方式都有符号位和数值位两部分,符号位0表示"正",1表示"负",而数值位,表示方式都不一样。在计算机系统中,数值一律使用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
正数的补码与其原码相同,负数的补码是其原码所有位取反后加一
1111 0101 原码 --> 469 补码 --> -11
-
-
^(异或运算符)
-
语法:a ^ b
-
作用:将a, b对应的二进制数的对应位进行异或运算
- 异或运算:相同为0,不同为1
-
例子
>>> 5 ^ 9 12 计算过程: 5 --> 0000 0101 9 --> 0000 1001 0000 0101 ^ 0000 1001 -------------- 0000 1100 ---> 12
-
-
<<(左移运算符)
-
语法:a << b
-
作用:将a对应的二进制数向左移动b位,低位补0
-
例子:
>>> 3 << 2 12 计算过程: 3 --> 0000 0011 0000 0011 << 2 0000 1100 ---> 12
-
-
>>(右移运算符)
-
语法:a >> b
-
作用:将a对应的二进制数(补码)向右移动b位,高位补符号位,
-
例子:
>>> -3 >> 2 -1 计算过程: -3 --> 1111 1101(补码) 1111 1101 >> 2 --------------- 1111 1111(补码) ----> -1
-
众所周知,=表示赋值,将=右边的表达式的值,赋给左边
python中赋值运算符是以 = 为基础进行的一些拓展
| 运算符 | 名称 | 例子 | 说明 |
|---|---|---|---|
| += | 加赋值 | a += b | 相当于 a = a + b |
| -= | 减赋值 | a -= b | 相当于 a = a -b |
| *= | 乘赋值 | a *= b | 相当于 a = a * b |
| /= | 除赋值 | a /= b | 相当于 a = a / b |
| %= | 取余赋值 | a %= b | 相当于 a = a % b |
| **= | 幂赋值 | a **= b | 相当于 a = a ** b |
| //= | 地板除赋值 | a //= b | 相当于 a = a // b |
| &= | 位与赋值 | a &= b | 相当于 a = a & b |
| |= | 位或赋值 | a |= b | 相当于 a = a | b |
| ^= | 位异或赋值 | a ^= b | 相当于 a = a ^ b |
| <<= | 左移赋值 | a <<= b | 相当于 a = a << b |
| >>= | 右移赋值 | a >>= b | 相当于 a = a >> b |
成员运算符是python中特有的运算符(全小写),用于判断对象是否是某个集合中的元素之一,好用且运行速度快,返回布尔值
| 运算符 | 描述 |
|---|---|
| in | 如果在指定的序列中找到值返回True ,否则返回False。 |
| not in | 如果在指定的序列中没有找到值返回True,否则返回False。 |
这也是python中特有的运算符
| 运算符 | 描述 |
|---|---|
| is | 判断两个标识符是不是引用自同一个对象 |
| not is | 判断两个标识符是不是引用自不同对象 |
注:is与not is主要是对判断对象是否为同一个对象类似于id(a) == id(b)、id(a) != id(b)
6.3 三目运算符(三元表达式)7 运算符优先级(从上到下优先级降序)python中的三元表达式同样有自己的特殊,不同与其他语言的 表达式?为真返回:为假返回
python中的格式是:为真时返回 if 表达式 else 为假时返回
| 运算符 | 描述 |
|---|---|
| () | 括号中的优先运算(最高优先级运算符) |
| function() | 函数调用 |
| [star_index : end_index], [start_index : end_index, step] | 切片 |
| [index] | 下标 |
| . | 引用类成员 |
| ** | 指数运算符 |
| ~、+(正)、-(负) | 位反、正负号 |
| *、/、%、// | 乘、除、取余、取整 |
| +(加)、-(减) | 加、减 |
| <<、>> | 位移运算 |
| & | 位与 |
| ^ | 位异或 |
| | | 位或 |
| >、<、<= 、>= | 比较运算符 |
| <>、==、!= | 等于运算符 |
| =、/=、*=、… | 赋值运算符 |
| is、is not | 身份运算符 |
| in、not in | 成员运算符 |
| and、or 和 not | 逻辑运算符 |



