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, 在一个有符号二进制数的补码形式。
<<
左移动运算符:运算数的各二进位全部左移若干位,由"<
a << 2 输出结果 240 ,二进制解释: 1111 0000
>>
右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数
a >> 2 输出结果 15 ,二进制解释: 0000 1111
以下实例演示了Python所有位运算符的操作:
#!/usr/bin/python# -*- coding: UTF-8 -*-a=60# 60 = 0011 1100b=13# 13 = 0000 1101c=0c=a&b;# 12 = 0000 1100print"1 - c 的值为:",c
c=a|b;# 61 = 0011 1101print"2 - c 的值为:",c
c=a^b;# 49 = 0011 0001print"3 - c 的值为:",c
c=~a;# -61 = 1100 0011print"4 - c 的值为:",c
c=a<<2;# 240 = 1111 0000print"5 - c 的值为:",c
c=a>>2;# 15 = 0000 1111print"6 - c 的值为:",c
以上实例输出结果:
1-c的值为:122-c的值为:613-c的值为:494-c的值为:-615-c的值为:2406-c的值为:15
5、逻辑运算符
and、or、not
6、成员运算符
in、not in 返回True or False
7、身份运算符
is:判断两个变量是否引用同一个对象
is not:判断两个变量是否引用了不同对象
注:Python中对象由三个部分组成:id、type、value
其中id用来唯一标识一个对象,type用来标识对象的类型,value用来标识对象的值
==用来判断value是否相等
is用来判断对象是否相同,用id判断
注意!!!Python在值很小时,赋予相同的values同一个id,值很大时,不对