Python运算符的使用
转载至:https://mp.weixin.qq.com/s/v0r6cchNFApjOIWG8c4vxA
1. 算数运算符
算术运算符就是我们常说的加减乘除法则,主要在程序里实现简单的数学计算,如表2-1
- 算数运算符对比表
运算符 |
描述 |
实例 |
+ |
加法,两个对象相加(字典、集合除外) |
>>> >>> 2+3 5 >>> a = [1,2,3] >>> b = [6,7,8] >>> a + b [1, 2, 3, 6, 7, 8] |
- |
减法,两个对象相减(集合中的“-”是求差集) |
>>> 5-2 3 >>> a = {1,2,3} >>> b = {3,4,5} >>> a-b {1, 2} |
* |
相乘,两个对象相乘(字典、集合除外) |
>>> a = [1,2,3] >>> a*2 [1, 2, 3, 1, 2, 3] >>> a = (1,2,3) >>> a*2 (1, 2, 3, 1, 2, 3) >>> a = 1 >>> a*2 2 >>> |
/ |
相除,两个对象相除 |
>>> a= 3 >>> a/2 1.5 >>> 2/a 0.6666666666666666 |
** |
幂运算 |
>>> a =2 >>> 2**3 8 |
% |
取余,获取除法中的余数 |
>>> 3%2 1 |
2 比较运算符
比较(关系)运算符是比较两个变量之间的大小关系,而且两个变量的数据类型必须相同,比较结果以True或者False返回,如表2-2。
- 比较运算符对比表
运算符 |
描述 |
实例 |
== |
等于,判断运算符前面的对象和运算符后面的对象是否相等(所有的数据类型都可以进行比较) |
>>> 1==1 True >>> 1==2 False >>> "abc" == "adf" False >>> {"a":1} == {"b":2} False |
!= |
不等于,判断运算符前面的对象是否不等于运算符后面的对象(所有的数据类型都可以进行比较) |
>>> 1==1 False >>> 1==2 True >>> "abc" == "adf" True >>> {"a":1} == {"b":2} True |
> |
大于,判断运算符前面的对象是否大于运算符后面的对象(字典不可以进行比较,其他的数据类型,比较的规则是若是第一个元素大于,就返回True,若是小于就返回False,若是相等就依次对后面的元素进行比较) |
>>> 1>=1 True >>> "abc" > "acd" False >>> {"a":1}>{"b":2} Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'dict' and 'dict' |
< |
小于,判断运算符前面的对象是否小于运算符后面的对象(与">"对比规则一样) |
>>>1<2 True >>>1>2 False |
>= |
大于等于,判断运算符前面的对象是否大于等于后面的对象(与">"对比规则一样) |
>>>1>=1 True >>> [1,2,3] >= [1,2,3] True >>> (1,2,3)>=(2,3,4,5,6,) False >>> (1,2,3)>=(2,5,6,787,78,78) False |
<= |
小于等于,判断运算符前面的对象是否小于等于后面的对象(与">"对比规则一样) |
>>>1<=1 True >>> [1,2,3] <= [1,2,3] False >>> (1,2,3)<=(2,3,4,5,6,) True >>> (1,2,3)<=(2,5,6,787,78,78) True |
3 赋值运算符
赋值运算符是算术运算符的一个特殊使用,其实质是两个变量进行算术运算并将运算结果重新赋值到其中一个变量里,如表2-3
- 赋值运算符对比表
运算符 |
描述 |
实例 |
= |
简单的赋值运算 |
a = y,将y的结果赋值给a |
+= |
加法赋值运算 |
a +=y, a = a+y ,将a+y的结果赋值给a |
-= |
减法赋值运算 |
a -= y, a= a-y, 将a-y的结果赋值给a |
*= |
乘法赋值运算 |
a *= y, a=a*y, 将a*y的结果赋值给a |
/= |
除法赋值运算 |
a /= y, a= a/y,将a/y的结果赋值给a |
%= |
取余赋值运算 |
a %= y, a= a%y, 将a%y取余之后的结果赋值给a |
**= |
幂赋值运算 |
a **= y, a= a**y, 将a**y幂运算之后的结果赋值给a |
//= |
相除取整赋值运算 |
a //= y, a= a//y, 将a与y相除取整的结果赋值给a |
&= |
按位与赋值(浮点数不能用) |
a &=y, a= a&y |
|= |
按位或赋值(浮点数不能用) |
a |= y, a= a|y |
^= |
按位异或赋值(浮点数不能用) |
a ^= y, a = a^y |
<<<= |
左移赋值(浮点数不能用) |
a <<<= y, a = a<<<y |
>>>= |
右移赋值(浮点数不能用) |
a>>>=y, a= a>>>y |
4 逻辑运算符
逻辑运算符是将多个条件进行与、或、非的逻辑判断,这种类型的运算符常用于Python的条件判断。条件判断会在后续章节详细讲述,现在首先了解与、或、非的逻辑判断,如图2-4 逻辑运算符对比表
运算符 |
描述 |
实例 |
and(与) |
a and b: 若 a或b只要其一为False,则返回False; 若a或b都是True,则返回True; 若a和b都为数字,则返回较小的数字 |
>>> True and True True >>> True and False False >>> False and False False >>> |
or(或) |
a or b: 若a或b只要其一为True,则返回True; 若a和b都是False,则返回False; 若a和b都为数字,则返回最大的数字; |
>>> True or False True >>> False or False False |
not(非) |
若a为True,则 not a返回False; 若是a为False,则not b返回True; |
>>> not False True >>> not True False |
注意:
逻辑运算中参与对比的对象可以为任意数据类型;
空的 字符串、列表、字典、元祖、集合都为False
5 位运算符
位运算符是将数值转换为二进制进行计算。我们无须手动将数值转换为二进制,只需对数值使用位运算符,Python会自动将数值转换为二进制进行计算并将计算结果转换为十进制。位运算符如表2-5所示
- 位运算符对比表
运算符 |
描述 |
实例 |
& |
按位与运算符,参与运算的这两个值,如果两个相应位都为1,那么该位的结果是1,否则为0 |
60&13 输出结果为12,二进制为0000 1100 |
| |
按位或运算符,只要对应的两个二进制位有一个为1,结果就为1 |
60|13 输出结果为61, 二进制为0011 1101 |
^ |
按位异或运算符,当两个对应的二进制位相异,结果为1 |
60^13输出结果为49,二进制为0011 0001 |
~ |
按位取反运算符,对数据的每个二进制取反,即把1变为0,把0变为1 |
~60 输出结果为-61,二进制为1100 0011 |
<< |
左移动运算符,将二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0 |
60<<2 输出结果为240,二进制为1111 0000 |
>> |
右移动运算符,将二进制位全部右移若干位,由“>>”右边的数指定移动的位数,移动过程中,正数最高位补0,负数最高位补1,无符号最高位补0 |
60>>2 输出结果为15,二进制为0000 1111 |
二进制数据是用0和1来表示数值的。它的基数为2,进位规则是逢二进一,借位规则是借一当二。由于Python是解释性编程语言,因此位运算符在实际开发中使用频率相对较低,读者了解即可.
6 成员运算符
成员运算符主要用于判断字符串、元组、列表或字典里是否包含某个成员,返回结果以True或False表示。Python的成员运算符如表2-6所示。
- 成员运算符对比表
运算符 |
描述 |
实例 |
in |
如果在指定的序列(元祖或列表)中找到值,就返回True,否则返回False 字典的话,是判断key值是字典的keys里面 |
|
not in |
如果在指定的序列(元祖或列表)中没有找到值,就返回True,否则返回False |
7 身份运算符
身份运算符是比较两个对象的存储单位是否一致,两个对象可以为任意的数据类型、函数和类等。Python的身份运算符如表2-7所示。
- 身份运算符对比表
运算符 |
描述 |
实例 |
is |
判断两个变量是否引用自同一个对象 |
|
is not |
判断两个变量是否引用自不同对象 |
如果两个变量的值是完全相同的,就说明这两个变量来自同一个对象,否则来自不同对象。下面通过实例来加以说明。
8 运算符的优先级
运算符的优先级是指在一个Python语句里,若包含两种或两种以上的运算符,则会根据其高低依次执行运算。表2-8从高到低列出了所有运算符的优先级。
- 运算符优先级表