运算符详解
一、算术运算符:
+运算符除了用于算术加法以外,还可用于列表、元组、字符串的连接。
例:
>>> (3+4j)+(5+6j) #复数相加
(8+10j)
>>> [1,2,3]+[4,5,6] #连接两个列表
[1, 2, 3, 4, 5, 6]
>>> (1,2,3)+(4,)#连接两个元组
(1, 2, 3, 4)
>>> 'hello'+'1234' #连接两个字符串
'hello1234'
*运算符除了表示算术乘法,还可用于列表、元组、字符串与整数的乘法,表示序列元素的重复。
>>> 5*(3+4j) #实数与复数的乘法
(15+20j)
>>> [1,2,3]*3 #列表元素重复
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> (1,2,3)*3 #元组元素重复
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> "abc"*3 #字符串元素重复
'abcabcabc'
>>> [1,2,3]*0 #返回空列表
[]
/和//运算符表示除法和地板除法(算术求整商)
/ | 两个数相除,结果为浮点数(小数) |
// | 两个数相除,结果为向下取整的整数 |
>>> 2/4
0.5
>>> 2//4
0
>>>
%用于整数或实数的求余运算
**运算符表示求幂,等价于pow()函数
% | 取模,返回两个数相除的余数 |
** | 幂运算,返回乘方结果 |
>>> 5%2
1
3**2 等价于 pow(3,2)
二、比较运算符:
比较运算符用于比较两个表达式的大小,其结果是布尔类型的数据。True和False
==,比较两个字符串、列表、数值是否相同
!=,比较两个字符串、列表、数值中前一个是否不等于后一个
>,比较两个字符串、列表、数值中前一个是否大于后一个
>>> "abc">"aBc"
True
<,比较两个字符串、列表、数值中前一个是否小于后一个
>>> [1,2,3]<[1,2,4]
True
>=,比较两个字符串、列表、数值中前一个是否大于或等于后一个
<=,比较两个字符串、列表、数值中前一个是否小于或等于后一个
>>> [1,2,3]<=[1,2,3,4]
True
三、逻辑运算符:(not、and、or)
Python中逻辑运算采用了“短路设计”,可以与电路的连接方式做个类比。
- or 逻辑或 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则直接输出 True 。
- and 逻辑与 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则不用参与接下来的逻辑运算,整个表达式结果即为False.
- not 逻辑非
- >>> not 0
-
True
四、位运算符:
运算符 | 描述 |
---|---|
& | 按位“与”运算符:参与运算的两个值,如果两个相应位都为 1,则结果为 1,否则为 0 |
| | 按位“或”运算符:只要对应的两个二进制位有一个为 1 时,结果就为 1 |
^ | 按位“异或”运算符:当两对应的二进制位相异时,结果为 1 |
~ | 按位“取反”运算符:对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1 |
<< | “左移动”运算符:运算数的各二进制位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃, 低位补 0 |
>> | “右移动”运算符:运算数的各二进制位全部右移若干位,由“>>”右边的数指定移动的位数 |
五、赋值运算符:
运算符 | 描述 |
---|---|
= | 常规赋值运算符,将运算结果赋值给变量 |
+= | 加法赋值运算符,例如 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 |
六、成员测试运算符:
运算符 | 描述 |
---|---|
in | 测试一个对象是否是另一个对象的元素,找到值时返回 True,否则返回 False |
not in | 当在指定的序列中没有找到值时返回 True,否则返回 False |
>>> 5 in range(1,10,1) #range()是 用来生成指定范围数字的内置函数
True
>>> 3 not in [1,2,3]
False
七、同一性测试运算符:
运算符 | 描述 |
---|---|
is | 判断两个标识符是否引用自同一个对象,若引用的是同一个对象则返回 True,否则返回 False |
is not | 判断两个标识符是不是引用自不同对象,若引用的不是同一个对象则返回 True,否则返回 False |
八、运算符优先级:
算术运算符->位运算符->关系运算符->逻辑运算符->赋值运算符
运算符 | 描述 |
---|---|
** | 幂 |
~ | 按位“取反” |
*、/、%、// | 乘、除、取模、取整除 |
+、- | 加、减 |
>>、<< | 右移、左移 |
& | 按位“与” |
^、| | 按位“异或”、按位“或” |
<=、<、>、>= | 比较运算符 |
==、!= | 等于、不等于 |
=、%=、/=、//=、-=、+=、*=、**= | 赋值运算符 |
is、is not | 身份运算符 |
in、not in | 成员运算符 |
and or not | 逻辑运算符 |