Python语言支持以下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
1、算术运算符
1、其中除号(/)要注意:在python2中,(/)用作整除。
解决方法有三:
1、两个相除的数中有一个为实数。
2、from __future__ import division
4、在打开python解释器的时候,加上参数-Qnew
2、(%)取余操作作用:比如时间上每十分钟检查一次,只要看看时间%10是否等于0即可。或者闰年什么的
2、比较运算符
是否相等(==),返回True/False
是否不等(!=)或者(<>)
>
<
>=
=<
3、赋值运算符
=,简单的赋值运算符
+=,加法赋值运算符,c += a 等价于 c = c + a
-=,减法赋值运算符,c -= a 等价于 c = c - a
*=,乘法赋值运算符,c *= a 等价于 c = c * a
/=,除法赋值运算符,c /= a 等价于 c = c / a
%=,取模赋值运算符,c %= a 等价于 c = c % a
**=,乘方赋值运算符,c **= a 等价于 c = c**a
//=,取整赋值运算符,c //= a 等价于 c = c // a
4、位运算符
按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下:
下表中变量 a 为 60,b 为 13。
运算符 | 描述 | 实例 |
---|---|---|
& | 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0 | (a & b) 输出结果 12 ,二进制解释: 0000 1100 |
| | 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。 | (a | b) 输出结果 61 ,二进制解释: 0011 1101 |
^ | 按位异或运算符:当两对应的二进位相异时,结果为1 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001 |
~ | 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。 |
<< | 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0。 | a << 2 输出结果 240 ,二进制解释: 1111 0000 |
>> | 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数 | a >> 2 输出结果 15 ,二进制解释: 0000 1111 |
以下实例演示了Python所有位运算符的操作:
#!/usr/bin/python # -*- coding: UTF-8 -*- a = 60 # 60 = 0011 1100 b = 13 # 13 = 0000 1101 c = 0 c = a & b; # 12 = 0000 1100 print "1 - c 的值为:", c c = a | b; # 61 = 0011 1101 print "2 - c 的值为:", c c = a ^ b; # 49 = 0011 0001 print "3 - c 的值为:", c c = ~a; # -61 = 1100 0011 print "4 - c 的值为:", c c = a << 2; # 240 = 1111 0000 print "5 - c 的值为:", c c = a >> 2; # 15 = 0000 1111 print "6 - c 的值为:", c
以上实例输出结果:
1 - c 的值为: 12 2 - c 的值为: 61 3 - c 的值为: 49 4 - c 的值为: -61 5 - c 的值为: 240 6 - c 的值为: 15
5、逻辑运算符
6、成员运算符
in、not in 返回True or False
7、身份运算符
is:判断两个变量是否引用同一个对象
is not:判断两个变量是否引用了不同对象
注:Python中对象由三个部分组成:id、type、value
其中id用来唯一标识一个对象,type用来标识对象的类型,value用来标识对象的值
==用来判断value是否相等
is用来判断对象是否相同,用id判断
注意!!!Python在值很小时,赋予相同的values同一个id,值很大时,不对