1.算术运算符
- a+b - a-b
a*b 乘 / a/b 除
% b%a 返回除法的余数 ** a**b 幂
// b//2 返回商的整数部分
2.比较运算符
== 等于,比较对象是否相等 True/False
!= 不等于,比较对象是否不相等
<> 不等于,比较对象是否不相等
大于
< 小于,返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。
= 大于等于
<= 小于等于
3.赋值运算符
= c=a+b 将a+b的运算结果赋值为c
+= c+=a 等效于c=c+a
-= c-=a 等效于c=c-a
= c=a 等效于c=ca
/= c/=a 等效于c=c/a
%= c%=a 等效于c=c%a 取模赋值运算符
= c=a 等效于c=c*a 取幂赋值运算符
//= c//=a 等效于c=c//a 取整除赋值运算符
4.逻辑运算符 a=10 b=20
and x and y 布尔与 如果x为False,x adn y返回False,否则返回y的计算值
(a and b) 返回20
or x or y 布尔或 如果x是非0,它返回x的值,否则它返回y的计算值
(a or b) 返回10
not not x 布尔非 如果x为True,返回False。如果x为False,返回True
not(a and b) 返回 False
逻辑运算的短路:
and和or 这两个逻辑运算符,如果运算符前面的表达式已经可以确定最终的运算结果值,则就不会去计算运算符后面的表达式的值
x and y : x为False,就可以确定最终结果为False,就不再计算y的逻辑值
x or y : x为True ,就可以确定最终结果为True,则不再计算y的逻辑值
5.成员运算符
in 如果在指定的序列中找到值返回True,否则返回False
not in 如果在指定序列中没有找到值返回True,否则返回False
6.身份运算符
is is是判断两个标识符是不是引用自一个对象
x is y, 如果id(x)=id(y). is返回结果1
is not 判断两个标识符是不是引用自不同对象
x is not y, 如果id(x)不等于id(y). is not返回结果 1
7.位运算符 a=60 a=00111100
b=13 b=00001101
& 按位与运算符:参与运算的两个值,如果两个相应位都为1,则结果为1,否则为0
(a&b) 输出结果12,二进制解释:00001100
| 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1
(a|b) 输出结果61,二进制解释:00111101
^ 按位亦或运算符:当对应的二进位相异时,结果为1
(a^b) 输出结果49,二进制解释:00110001
~ 按位取反运算符:对应数据的每个二进制位取反,即把1变为0,0变为1
(~a) 输出结果-61,二进制解释:11000011,在一个有符号二进制数的补码形式
<< 左移运算符:运算符的各二进位全部左移若干位,高位丢弃,低位补0
(a<<2) 输出结果240,二进制解释:11110000
右移运算符:把>>左边的运算数的各二进位全部右移若干位,>>右边的为移动位数
(a>>2) 输出结果15,二进制解释:00001111
8.运算优先级
** 指数最高
~ + - 按位翻转,一元加减
- / % // 乘除取模和取整除
加减
<< 右移左移
& 位‘and’
^ | 位运算符
< = < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
9.表达式注意点:
除数与被除数只要有一个为浮点数(小数),结果为小数;
两整数相除,python默认情况下得到的是他们的商;
通过添加from_future_import division(future两边是两条横线)让整数相除得到浮点数结果