Python的xiao习06-基础知识03,运算符

240 阅读6分钟

运算符

在Python3中运算符分为:算数运算符、比较运算符(关系运算符)、赋值运算符、逻辑运算符、位运算符、成员运算符、身份运算符。

算术运算符

算数运算符除了数学中常用的以外,还有几个特殊运算符,下面我们一起来看一下。
定义两个变量 :a = 10 , b = 20;

运算符 描述 算式 输出结果
+ 加法:两个对象相加 print(a+b) 20
- 减法:两个对象相减 print(a-b) -10
* 乘法:两个对象相乘
或者一个字符串重复n次
print(a*b)
print('ABC'*a)
200
输出10遍ABC
/ 除法:两个对象相除 print(a/b)
print(b/a)
0.5
2.0
% 求余:两数相除,没有被整除的值 print(a/3)
print(a/4)
print(a/8)
a / 3 = 3····1,最后结果是1
a/ 4 = 2····2,最后结果是2
// 取整,两数相除,取整除部分的值 print(a//7) 10 // 7 = 1····3,最后结果是1
** 幂:返回x的y次方 print(a**b) 返回10的20次方
100000000000000000000

比较运算符

定义两个变量 :a = 10 , b = 20;

运算符 描述 算式 返回结果 解释
== 等于:用于比较两边数据是否相等 print(a == b) False 10 == 20
!= 不等于:用于比较两边数据是否不相等 print(a != b) True 10 != 20
<> 不等于:python3已废弃 print(a<>b) True 10 <> 20
> 大于:用于比较>左边的数值是否比右边的大 print(a>b) False 10>20
< 小于:用于比较<左边的数值是否比右边的小 print(a<b) True 10<20
<= 大于等于:用于比较>=左边的数值是否大于或等于右边的数 print(a>=b) False 10>=20
>= 小于等于:用于比较<=左边的数值是否小于或等于右边的数 print(a<=b) True 10<=20

赋值运算符

定义两个变量 :a = 10 , b = 20 , c = 30;

运算符 描述 算式 返回结果 解释
= 基本的赋值运算符 c = a + b 30 将a+b的结果赋值给c
+= 加法赋值运算符 c+=a 等效于 c = c+a 40 c=30+10=40
-= 减法赋值运算符 c-=a 等效于 c = c-a 20 c=30-10=20
*= 乘法赋值运算符 c*=a 等效于 c = c*a 300 c=30*10=300
/= 除法赋值运算符 c/=a 等效于 c = c/a 3 c=30/10=3
%= 取余赋值运算符 c%=a 等效于 c = c%a 0 c=30%10=0
//= 取整赋值运算符 c//=a 等效于 c = c//a 3 c=30//10=3
**= 幂赋值运算符 c**=a 等效于 c = c**a 5.940e+14 c=30**10=5.9049e+14

逻辑运算符

定义两个变量 :a = 10 , b = 20 , C = False;

运算符 描述 算式 返回结果 解释
and 布尔“与”:如果a的值为布尔类型的False,或者0,时返回False,否则返回b的计算值 a and b 20 10 and 20 ,前者不为0或者False,所以返回y的计算值20
or 布尔“或”:如果 a 是 True,它返回 a 的值,否则它返回 b 的计算值。 a or b 10 10 or 20,前者不为0或False,所以返回前者的值10
not 布尔“非”:对结果取反,如果c=True,结果就是 False,如果 x 为 False,结果就是 True。 not c True c是False,取反变成True

位运算符

位运算符是把数字看作二进制来进行计算的。
二进制数,一般由10组成的八位数,不够的高位补零
如何求二进制,当前数/2,如果可以整除当前位是0,继续/2,不能整除,当前位是1,当前数-1/2。一直得到结果为0结束,二进制就是余数的逆序。

求二进制
定义变量a = 60,b = 13; 60的二进制为0011 1100,13的二进制为00001101

运算符 描述 算式 返回结果 解释
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则当前位的结果为1,否则为0 a&b 12 0000 1100
| 按位或运算符:参与运算的两个值,相对应位只要有一个是1,则当前位结果为1,否则为0 a|b 61 0011 1101
^ 按位异运算符:两个对应的二进制位不同的时候,结果为1 a^b 49 00110001
~ 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 ~a -61 1100 0011
<< 左移动运算符:运算数的二进制的每一位都向左移动指定位数,由<<右边的数指定,高位丢弃,低位补零。 a<<2 240 二进制数由0011 1100,变成1111 0000,把所有数向左移动两位
>> 右移动运算符:运算数的二进制的每一位都向右移动指定位数,由>>右边的数指定,低位丢弃,高位补零。 a>>2 15 二进制数由0011 1100,变成0000 1111,把所有数向右移动两位

成员运算符

定义变量a = 60,b = 13,list = [1,2,3,4,5];

运算符 描述 算式 返回结果 解释
in 如果在指定序列中找到值返回True,否则返回False a in list False 变量a的值是60,不存在于list内
not in in相反,如果在指定序列中找不到值返回True,否则返回False a not in list True

身份运算符

身份运算符用于比较两个对象的存储单元
定义变量a = 60,b = 13,c = a;

运算符 描述 算式 返回结果 解释
is 判断两个标符是不是引用自同一个对象,是则返回True a is c True 变量赋值变量的时候,其实就是把指针指向同一个数据,所以ac是同一个对象
is not is相反,判断两个标符是不是引用自同一个对象,不是则返回True a is not b True ab是分别定义的两个变量,肯定不是同一引用

还有一种情况

a = 1
c = 1
print(a is c) #输出结果:True

运算符优先级(从上至下)

运算符 描述
** 幂(最高优先级)
~ 按位翻转
* / % // 乘、除、取余、取整
+ - 加、减法
<< >> 左移、右移运算符
& 位“与”
^| 位运算符
< <= > >= 比较运算符
== != 等于运算符
= += -= *= /= //=%= **= 赋值运算符
is / is not 身份运算符
in / not in 成员运算符
not / and / or 逻辑运算符

小结

大体运算符分为以下几类:

  • 算数运算符
  • 关系(比较)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符

运算符之间有优先级,在任何条件下按照优先级顺序执行