Python运算符
运算符的优先级:+
和-
优先级最低,*
,/
,//
,%
优先级较高,单目运算符+
和-
优先级更高,乘方的优先级最高
环境说明
环境:
python 2.7
centos 7.5
|
|
算数运算
- 字符串之间使用加号(
+
)可以做字符串拼接 - 只要除数或被除数中有一个数是浮点数,那么得到的结果也是浮点数
运算符 | 描述 | 示例 |
+ | 两个对象相加 | >>>print ‘abc’+’def’ abcdef >>>print 123+234 357 >>> |
- | 两个对象相减 | >>>print 123-456 -333 >>> |
* | 两个数相乘或返回一个重复若干次的序列 | >>>print 123*456 56088 >>>print ‘abc’*2 abcabc >>> |
/ | 两个数相除 | >>>print 2/3 0 >>>print 2/3.0 0.666666666667 >>>print 2.0/3 0.666666666667 >>> |
// | 整除,返回商的整数部分 | >>>print 3//2 1 >>>print 3//2.0 1.0 >>> |
% | 求余/取模,返回除法的余数 | >>>print 4%3 1 >>>print 4%3.0 1.0 >>>print 4%2.0 0.0 >>>print 4%2 0 >>> |
** | 求幂/次方 | >>>print 2**3 8 >>>print 2**3.0 8.0 >>> |
赋值运算
运算符 | 描述 | 实例 | 示例 |
= | 简单赋值运算符 | a = 5,b = 3,c = a - b | >>>a = 5 >>>b = 3 >>>c = a - b >>>print ‘c的值为:’,c c的值为:2 >>> |
+= | 加法赋值运算符 | a+= b 相当于 a = a+b | >>>a = 5 >>>b = 3 >>>a+= b >>>print ‘a的值为:’,a a的值为:8 >>> |
-= | 减法赋值运算符 | a -= b 相当于 a = a -b | >>>a = 5 >>>b = 3 >>>a -= b >>>print ‘a的值为:’,a a的值为:2 >>> |
*= | 乘法赋值运算符 | a *= b 相当于 a = ab | >>>a = 5 >>>b = 3 >>>a *= b >>>print ‘a的值为:’,a a的值为:15 >>> |
/= | 除法赋值运算符 | a /= b 相当于 a = a / b | >>>a = 5 >>>b = 3 >>>a /= b >>>print ‘a的值为:’,a a的值为:1 >>> |
//= | 取整除赋值运算符 | a //= b 相当于 a = a // b | >>>a = 5 >>>b = 3 >>>a //= b >>>print ‘a的值为:’,a a的值为:1 >>> |
%= | 取模赋值运算符 | a %= b 相当于 a = a % b | >>>a = 5 >>>b = 3 >>>a %= b >>>print ‘a的值为:’,a a的值为:2 >>> |
**= | 幂赋值运算符符 | a **= b 相当于 a = a^b | >>>a = 5 >>>b = 3 >>>a **= b >>>print ‘a的值为:’,a a的值为:125 >>> |
python 不支持C语言中的自增1和自减1运算符,因为+
和-
也是单目运算,python会将--n
解释为-(-n)
从而得到n,同样,++n
的结果也是n。
比较运算
运算符 | 描述 | 示例 |
< | 小于,比较运算符返回1表示真,返回0表示假。 这分别与特殊的变量True和False等价 | >>>a=21 >>>b=10 >>>a>b True >>> |
<= | 小于或等于 | >>>a=21 >>>b=31 >>>a<=b True >>> |
> | 大于 | >>>a=21 >>>b=31 >>>a>b False >>> |
>= | 大于或等于 | >>>a=31 >>>b=21 >>>a>=b True >>> |
== | 等于 | >>>a=31 >>>b=21 >>>a==b False >>> |
!= | 不等于 | >>>a=31 >>>b=21 >>>a!=b True >>> |
is | 判断两个标识符是否引用自一个对象 | >>>x = [4,5,6] >>>y = [7,8,9] >>>x is y False >>> |
is not | 判断两个标识符是否引用自不同对象 | >>>x = [4,5,6] >>>y = [7,8,9] >>>x is not y True >>> |
逻辑运算
“真”值测试(Truth Value Testing)
Python中的任何一个对象都可以被测试“真”值。可以这样理解:Python中的任何一个对象都可以转换为一个布尔值,而这个“真”值测试就是获取一个对象对应的布尔值的过程。
Python中只有下面这些值对应的布尔值为False:
None
False
- 数字类型中的
0
,如:0
,0.0
,0j
- 任意空序列,如:
''
,()
,[]
- 任意一个空映射,如:
{}
- 一个用户自定义类的实例。该用户自定义类中定义了一个
__bool__()
或__len__()
方法,且实例调用该方法时返回整数0或布尔值False
除此之外,所有的其它值对应的布尔值都是True, 因此许多类型的对象永远是True。”真”值测试可以被用在 if或while条件中,也可以作为布尔操作的操作数。
布尔运算(Boolean Operations)
Python中的逻辑运算称为“布尔运算(Boolean Operations)”,操作符包括:and(与)、or(或)、not(非)。
运算符 | 逻辑表达式 | 描述 | 示例 |
and | x and y | 与运算,只有两个布尔值都为 True 时,计算结果才为 True | >>>x = True >>>y = False >>>x and y False >>> |
or | x or y | 或运算,只要有一个布尔值为 True,计算结果就是 True | >>>x = True >>>y = False >>>x or y True >>> |
not | not x | 非运算,把True变为False,或者把False变为True | >>>x = True >>>not x False >>> |
位运算
按位运算是指把数字转换为二进制来进行计算。123#左边为十进制,右边为二进制60 ,0011 110013 ,0000 1101
运算符 | 描述 | 实例 | 示例 |
& | 按位与,参与运算的两个值。 如果相应的二进制位都为1,则该位结果为1,否则为0 | a&b对应的二进制结果为 0000 1100,十进制为12 | >>>a=60 >>>b=13 >>>c=a & b >>>print c 12 >>> |
| | 按位或运算符, 只要对应的二个二进位有一个为1时,结果位就为1 | (a|b)输出结果61, 二进制解释: 0011 1101 | >>>a=60 >>>b=13 >>>c=a|b >>>print c 61 >>> |
^ | 按位异或运算符, 当两对应的二进位相异时,结果为1 | (a^b)输出结果49, 二进制解释: 0011 0001 | >>>a=60 >>>b=13 >>>c=a^b >>>print c 49 >>> |
~ | 按位取反运算符,对数据的每个二进制位取反, 即把1变为0,把0变为1。~x 类似于-x-1 | (~a)输出结果-61, 二进制解释:1100 0011, 在一个有符号二进制数的补码形式 | >>>a=60 >>>b=~a >>>print b -61 >>> |
<< | 左移动运算符,运算数的各二进位全部左移若干位, 由 << 右边的数字指定了移动的位数,高位丢弃,低位补0 | a << 2输出结果240, 二进制解释: 1111 0000 | >>>a=60 >>>b=a<<2< br="">>>>print b 240 >>>2<> |
>> | 右移动运算符, 把”>>”左边的运算数的各二进位全部右移若干位, >>右边的数字指定了移动的位数 | a>>2输出结果15, 二进制解释:0000 1111 | >>>a=60 >>>b=a>>2 >>>print b 15 >>> |
Python成员运算符
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | x 在 y 序列中 , 如果 x 在 y 序列中返回 True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | x 不在 y 序列中 , 如果 x 不在 y 序列中返回 True |
|
|
|
|
Python运算符优先级
运算符 | 描述 |
---|---|
** |
指数(最高优先级) |
~ ,+ ,- |
按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@) |
* ,/ ,% ,// |
乘,除,取模和取整除 |
+ ,- |
加法减法 |
>> ,<< |
右移,左移运算符 |
& |
位’AND’ |
^ |
位运算符 |
<= ,< ,> ,>= |
比较运算符 |
<> ,== ,!= |
等于运算符 |
= ,%= ,/= ,//= ,-= ,+= ,*= ,**= |
赋值运算符 |
is is not |
身份运算符 |
in not in |
成员运算符 |
not and or |
逻辑运算符 |
单目运算符
指运算所需变量为一个的运算符,又叫一元运算符,其中有:
- 逻辑非运算符:
!
- 按位取反运算符:
~
- 自增自减运算符:
++
,–
- 负号运算符:
-
- 类型转换运算符:
(类型)
- 指针运算符和取地址运算符:
*
,&
- 长度运算符:
sizeof
等
双目运算符
指对两个变量进行操作
- 初等运算符
- 下标运算符:
[]
- 分量运算符:
->
(向结构体成员运算符) - 结构体成员运算符:
_
- 下标运算符:
- 算术运算符
- 乘法运算符:
*
- 除法运算符:
/
- 取余运算符:
%
- 加法运算符:
+
- 减法运算符:
-
- 乘法运算符:
- 关系运算符
- 等于运算符:
==
- 不等于运算符:
!=
- 关系运算符:
<
,>
,<=
,>=
- 等于运算符:
- 逻辑运算符
- 逻辑与运算符:
&&
- 逻辑或运算符:
||
- 逻辑非运算符:
!
- 逻辑与运算符:
- 位运算符
- 按位与运算符:
&
- 按位异或运算符:
^
- 按位或运算符:
|
- 左移动运算符:
<<
- 右移动运算符:
>>
- 按位与运算符:
- 赋值运算符
- 简单赋值运算符:
=
- 加法赋值运算符:
+=
- 减法赋值运算符:
-=
- 乘法赋值运算符:
*=
- 除法赋值运算符:
/=
- 取模赋值运算符:
%=
- 左移动运算符:
>>=
(对变量进行位运算移位之后的结果再赋值给原来的变量) - 右移动运算符:
<<=
(同上) - 实现按位与运算符:
&=
,a = iand(a, b) is equivalent to a &= b
参考,参考 - 实现按位或赋值运算符:
|=
,a|=2等价于a=a|2()
;a = ior(a, b) is equivalent to a |= b
。参考同上 - 按位异或赋值运算符:
^=
;a = ixor(a, b) is equivalent to a ^= b
。参考同上
- 简单赋值运算符:
- 逗号运算符:
,
三目运算符
三目运算符对三个变量进行操作,指的是计算机c语言的重要组成部分。条件运算符是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
本文出自”Jack Wang Blog”:http://www.yfshare.vip/2018/08/04/Python运算符/