❤️ 博客主页:水滴技术
🌸 订阅专栏:Python 入门核心技术
🚀 支持水滴:点赞👍 + 收藏⭐ + 留言💬
文章目录
- 一、算术运算符
- 二、按位运算符
- 2.1 按位与 &
- 2.2 按位或 |
- 2.3 按位异或 ^
- 2.4 按位取反 ~
- 2.4.1 正整数取反
- 2.4.2 负整数取反
- 2.4.3 二进制与十进制之间的转换
- 2.5 按位左移 <<
- 2.6 按位右移 >>
- 三、赋值运算符
- 四、比较运算符
- 五、身份运算符
- 六、逻辑运算符
- 七、成员运算符
- 八、运算符的优先级
- 系列文章
- 热门专栏
大家好,我是水滴~~
本篇主要讲术 Python 的常用运算符,主要包括:算术运算符、按位运算符、赋值运算符、比较运算符、身份运算符、逻辑运算符、成员运算符,以及运算符的优先级。
一、算术运算符
算术运算符用于基本的数学运算。运算的双方为数字类型,其结果也为数字类型。
运算符 | 描述 | 示例 |
---|---|---|
+ | 加 | 2 + 4 输出结果 6 |
- | 减 | 4 - 3 输出结果 1 |
* | 乘 | 3 * 4 输出结果 12 |
/ | 除 | 12 / 3 输出结果 4.0 |
% | 取模 | 13 % 5 输出结果 3 |
** | 幂 | 2 ** 10 输出结果 1024 |
// | 整除 | 7 // 3 输出结果 2 |
代码示例:
print(2 + 4) # 加法运算
print(4 - 3) # 减法运算
print(3 * 4) # 乘法运算
print(12 / 3) # 除法运算
print(13 % 5) # 取模运算
print(2 ** 10) # 幂运算
print(7 // 3) # 整除运算
输出结果:
6
1
12
4.0
3
1024
2
二、按位运算符
按位运算符用于将整数转换为二进制形式,然后从底位到高位依次按位运算。运算的双方必须为整数,其结果也为整数。
运算符 | 描述 | 示例 |
---|---|---|
& | 按位与 | 12 & 10 输出结果 8 1100 & 1010 = 1000 |
| | 按位或 | 12 | 10 输出结果 14 1100 | 1010 = 1110 |
^ | 按位异或 | 12 ^ 10 输出结果 6 1100 ^ 1010 = 0110 |
~ | 按位取反 | ~12 输出结果 -13 见下面详细介绍 |
<< | 按位左移 | 12 << 2 输出结果 48 1100 << 2 = 110000 |
>> | 按位右移 | 12 >> 2 输出结果 3 1100 >> 2 = 11 |
按位运算符相对复杂些,需要详细的介绍。
2.1 按位与 &
两个整数转为二进制数后,按顺序从低到高匹配:只有都为1时,结果才为1;有一个 0,结果为0。
例如:
1100 & 1010 = 1000
2.2 按位或 |
两个整数转为二进制数后,按顺序从低到高匹配:只要有一个为1时,结果就为1;两个都为 0 时,结果才为 0。
例如:
1100 | 1010 = 1110
2.3 按位异或 ^
两个整数转为二进制数后,按顺序从低到高匹配:两个数相同时为 0;不同时为 1。
例如:
1100 ^ 1010 = 0110
2.4 按位取反 ~
按位取反就是先将十进制数转为二进制数,然后将每一个的 0 转为 1,1 转为 0,在转换之前需要先确定位数。
2.4.1 正整数取反
比如对 12 进行取反的过程:
(1)先确定我们计算的位数,这里我使用八位,即一个字节
(2)那么 12 的二进制表示为:00001100
(3)对该二进制取反,结果为:11110011
(4)最后将该结果转为十进制,得到:-13
2.4.2 负整数取反
比如对 -15 进行取返的过程:
(1)先确定我们计算的位数,这里我使用八位,即一个字节
(2)那么 -15 的二进制表示为:11110001
(3)对该十进制取反,结果为:00001110
(4)最后将该结果转为十进制,得到:14
2.4.3 二进制与十进制之间的转换
在上面介绍取反的过程时,对于二进制与十进制之间的转换没做介绍,这里详细说一下。
首先在做转换之前,要先确定位数,为什么要这样?
因为二进制中,最高位是用来表示正负号的,0代表正数,1代表负数。所以要先确定位数,才能找到最高位。
比如:一个字节是八数,最高位表示正负号,剩余七位才能用来表示数字,所以一个字节最大的正数为 01111111,转为十进制为 127;最小的负为 10000000,转为十进制为 -128
下面开始介绍十进制与十进制之间的转换,对于正数比较简单,不多废话,我们重点说下负数:
负数十进制转二进制:
简述过程:忽略负号的十进制 → 原码 → 反码 → 补码。
详细过程:先忽略负号,取正数的二进制,得到原码;然后对其取反,得到反码;最后加一,得到补码。这个最终的补码,就是我们要的二进制。
下面是将 -14 转为二进制的过程:
(1)忽略负号,取 14 的二进制 00001110,这是原码
(2)对原码取反 11110001,这是反码
(3)再加一 11110010,这是补码,也是我们最终需要的二进制数。
负数二进制转十进制:
简述过程:补码 → 反码 → 原码 → 十进制加上负号。
详细过程:拿到负数的二进制,这个是补码;先加一,得到反码;然后取反,得到原码;最后转为十进制,再加上负号,就是我们要的十进制。
下面是将 11110010 转为十进制的过程:
(1)先将补码 11110010 减一,得到 11110001,这是反码
(2)对反码取反,得到 00001110,这是原码
(3)将原码转为十进制为14,再加上负号为 -14
2.5 按位左移 <<
两个整数转为二进制数后,按顺序从低到高匹配:向左移 n 位,后面补 n 个 0。
例如:
1100 << 2 = 110000
2.6 按位右移 >>
两个整数转为二进制数后,按顺序从低到高匹配:向右移 n 位,舍弃右边 n 位数据。
例如:
1100 >> 2 = 11
三、赋值运算符
Python 支持算术运算符、按位运算符、赋值运算符联合使用,形成复合赋值运算符。等价于先执行算术运算或按位运算,然后将结果进行赋值。
运算符 | 描述 | 示例 | 等同于 |
---|---|---|---|
= | 赋值 | n = 2 | n = 2 |
+= | 加法赋值 | n += 2 | n = n + 2 |
-= | 减法赋值 | n -= 2 | n = n - 2 |
*= | 乘法赋值 | n *= 2 | n = n * 2 |
/= | 除法赋值 | n /= 2 | n = n / 2 |
%= | 取模赋值 | n %= 2 | n = n % 2 |
**= | 幂赋值 | n **= 2 | n = n ** 2 |
//= | 整除赋值 | n //= 2 | n = n // 2 |
&= | 按位与赋值 | n &= 2 | n = n & 2 |
|= | 按位或赋值 | n |= 2 | n = n |
^= | 按位异或赋值 | n ^= 2 | n = n ^ 2 |
<<= | 按位左移赋值 | n <<= 2 | n = n << 2 |
>>= | 按位右移赋值 | n >>= 2 | n = n >> 2 |
四、比较运算符
比较运算符用于比较两个数之间的大小关系,执行结果为布尔类型:正确返回 True,不正确返回 False。
运算符 | 描述 | 示例 |
---|---|---|
< | 小于 | 3 < 4 输出结果 True 4 < 3 输出结果 False |
<= | 小于等于 | 4 <= 4 输出结果 True 5 <= 4 输出结果 False |
> | 大于 | 5 > 3 输出结果 True 5 > 5 输出结果 False |
>= | 大于等于 | 5 >= 5 输出结果 True 5 >= 6 输出结果 False |
== | 等于 | 5 == 5 输出结果 True 5 == 6 输出结果 False |
!= | 不等于 | 5 != 6 输出结果 True 5 != 5 输出结果 False |
五、身份运算符
身份运算符用于比较对象,不是比较它们的值是否相等,而是比较引用地址是否相同。
运算符 | 描述 | 示例 |
---|---|---|
is | 是否同一对象 | a is b 输出结果 False |
is not | 是否不同对象 | a is not b 输出结果 True |
六、逻辑运算符
逻辑运算符用于判断两边的逻辑关系。
运算符 | 描述 | 示例 |
---|---|---|
and | 与 - 两边都为 True 时,结果才为 True | 3 > 1 and 4 > 1 输出结果 True |
or | 或 - 两边有一个为 True 时,结果就为 True | 3 > 1 or 4 < 1 输出结果 True |
not | 非 - 结果与括号内值相反 | not(3 > 1) 输出结果 False |
七、成员运算符
成员运算符用于判断值是否属于指定序列。
运算符 | 描述 | 示例 |
---|---|---|
in | 值是序列的成员 | a in list 输出结果 True |
not in | 值不是序列的成员 | a not in list 输出结果 False |
八、运算符的优先级
Python 中各类运算符的优先级如下表所示:优先级依次从高到低
运算符优先级排序 | 运算符内部优先次序 |
---|---|
算数运算符 | 遵循四则运算规则 |
比较运算符(>,>=,<,<=) | >,>=,<,<=从左至右依次运算 |
比较运算符(==,!=) | ==,!=从左至右依次运算 |
赋值运算符 | 从左至右依次运算 |
身份运算符 | 从左至右依次运算 |
成员运算符 | 从左至右依次运算 |
逻辑运算符(and) | and的优先级优于or和not |
逻辑运算符(or,not) | 从左至右依次运算 |
系列文章
🔥 Python 基础(一):初识 Python
🔥 Python 基础(二):搭建 Python 开发环境
🔥 Python 基础(三):Python 集成开发工具 IDLE
🔥 Python 基础(四):基础语法
🔥 Python 基础(五):变量与常量
🔥 Python 基础(六):基本数据类型
热门专栏
👍 《Python入门核心技术》
👍 《IDEA 教程:从入门到精通》
👍 《Java 教程:从入门到精通》
👍 《MySQL 教程:从入门到精通》
👍 《大数据核心技术从入门到精通》