Python 基础(七):常用运算符

Python 基础(七):常用运算符_第1张图片

❤️ 博客主页:水滴技术
订阅专栏: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 教程:从入门到精通》
《大数据核心技术从入门到精通》

Python 基础(七):常用运算符_第2张图片

你可能感兴趣的:(Python入门核心技术,python)