环境:python3.x
a,b = 60,164
一、算数运算符
操作符 | 描述 | 例子 |
+ | 加法 | a+b = 224 |
- | 减法 | a-b = -104 |
* | 乘法 | a*b = 9840 |
/ | 除(保留小数位) | 60/2 = 30.0 |
// | 整除 | 60//2 = 30 |
% | 求余 | b%a = 44 |
** |
乘方 |
a**2 = 3600 |
二、比较操作符(返回True或者False)
运算符 |
描述 |
例子 |
== |
判断两边值是否相等 |
a == b False |
!= |
判断两边值是否不相等 |
a != b True |
> |
判断左边值是否大于右边 |
a > b False |
< |
判断左边值是否小于右边 |
a < b True |
>= |
判断左边值是否大于或者等于右边 |
a >= b False |
<= |
判断左边值是否小于或者等于右边 |
a < b True |
三、赋值运算符
运算符 |
描述 |
例子 |
= |
赋值 |
c = 30 |
+= |
加法and赋值 |
c+=10相当于 c=c+10 |
-= |
减法and赋值 |
c-=10相当于 c=c-10 |
*= |
乘法and赋值 |
c*=10相当于 c=c*10 |
/= |
除法and赋值 |
c/=10相当于 c=c/10 |
//= |
整除and赋值 |
c//=10相当于 c=c//10 |
%= |
求余and赋值 |
c%=10相当于 c=c%10 |
**= |
乘方and赋值 |
c**=3相当于 c == c**3 |
四、位运算符
a = 60 #0011 1100
b = 164 #1010 0100
运算符 |
描述 |
例子 |
& |
按位与:只有同为真时才为真(1) |
a&b 0010 0100 |
| |
按位或:只有同为假时才为假(0) |
a|b 1011 1100 |
^ |
按位异或:相同为0,相反为1 |
a^b 1001 1000 |
<< |
按位左移n位:相当于乘以2的n次方 |
a << 1 0111 1000 |
>> |
按位右移n位:相当于除2的n次方 |
a >> 2 000 1111 |
~ |
按位取反: |
负数用补码表示,如该列:~a为1111 1111 1111 1111 1111 1111 1100 0011(32位机器上) 得到补码,反码:1111 ...1100 0010(补码-1),原码(反码取反):1000...0011 1101(第一位为符号位) 得到结果为-61 |
五、逻辑运算符
运算符 |
描述 |
例子 |
and |
逻辑与 |
a and b为真输出b(最后的值),为假输出假的值 |
or |
逻辑或 |
a or b为真输出真值,为假输出b(即最后的值) |
not |
逻辑非 |
not a False |
六、成员运算符
in
not in
如
list = ['a','b']
'a' in list => True #判断是否为该list成员,相对应还有not in
七、身份运算
is
not is
如
a = 1
b = a
b is a =》True #is判断两个标识符是不是指向同一对象,相对应的还有not is
与==的区别:
python中的对象包含三要素:id、type、value。
其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值。
is判断的是a对象是否就是b对象,是通过id来判断的。
==判断的是a对象的值是否和b对象的值相等,是通过value来判断的。
a = 123
b = 123
print(id(a),id(b)) ->3519584 3519584,注意id值是会一直变的,你的电脑上和我电脑上执行的结果可能不一样,但应该是指向同一块内存地址
print(a is b,a==b)-> True True
a = '123'
b ='123'
print(id(a),id(b)) ->2006408848 2006408848
print(a is b,a==b) -> True True
a = [1,2,3]
b = [1,2,3] print(id(a),id(b)) ->8788248 8787848
print(a is b,a==b)-> False True
八、三元运算
result = 值1 if 条件 else 值二
如:a,b,c = 1,3,5
d=a if a>b else c #如果a>b 则d=a,否则d=c,
print(d)
d=a if a<b else c ##如果a<b 则d=a,否则d=c
print(d)