Python语言支持以下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
1.算数运算符(可以跟= 形成赋值运算符)
代码
a = 23.6 b = 14.7 print(a+b) print(a-b) print(a*b) print(a/b) print(a%b) print(a//b) print(a**b) print("======================") a = 10 b = 2 print(a+b) print(a-b) print(a*b) print(a/b) print(a%b) print(a//b) print(a**b)
结果
38.3 8.9 346.92 1.60544217687 8.9 1.0 1.51987000319e+20 ====================== 12 8 20 5 0 5 100
总结
+ | 加 - 两个对象相加 | a + b 输出结果 30 |
- | 减 - 得到负数或是一个数减去另一个数 | a - b 输出结果 -10 |
* | 乘 - 两个数相乘或是返回一个被重复若干次的字符串 | a * b 输出结果 200 |
/ | 除 - x除以y | b / a 输出结果 2(如果两个都是整数,跟//等效,否则,正常触法) |
% | 取模 - 返回除法的余数 | b % a 输出结果 0(如果余数不是整数,结果仍然是类似于除法结果) |
** | 幂 - 返回x的y次幂 | a**b 为10的20次方, 输出结果 100000000000000000000 |
// | 取整除 - 返回商的整数部分 | 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0(永远取整数结果) |
算术运算符跟赋值运算符可以搭配形成混合运算符。如 a+=b 它等价于 a = a + b
2.关系运算符
代码
a = 2 b = 1 print(a > b) print(a < b) print(a <> b) print(a == b) print(a != b) print(a >= b) print(a <= b)
结果
True
False
True
False
True
True
False
总结
== | 等于 - 比较对象是否相等 | (a == b) 返回 False。 |
!= | 不等于 - 比较两个对象是否不相等 | (a != b) 返回 True. |
<> | 不等于 - 比较两个对象是否不相等 | (a <> b) 返回 True。这个运算符类似 != 。 |
> | 大于 - 返回x是否大于y | (a > b) 返回 False。 |
< | 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 | (a < b) 返回 True。 |
>= | 大于等于 - 返回x是否大于等于y。 | (a >= b) 返回 False。 |
<= | 小于等于 - 返回x是否小于等于y。 |
注意
它的状态的首字母都是大写的,这是跟java等语言的不同点
3.位运算符
代码
a = 2#00000010 b = 1#00000001 print(a & b) print(a | b) print(a ^ b) print(~a) print(a>>1) print(a<<2)
结果
0 3 3 -3 1 8
总结
& | 按位与运算符 | (a & b) 输出结果 12 ,二进制解释: 0000 1100(一0则0) |
| | 按位或运算符 | (a | b) 输出结果 61 ,二进制解释: 0011 1101(一1则1) |
^ | 按位异或运算符 | (a ^ b) 输出结果 49 ,二进制解释: 0011 0001(相同则0) |
~ | 按位取反运算符 | (~a ) 输出结果 -61 ,二进制解释: 1100 0011, 在一个有符号二进制数的补码形式。(01互换) |
<< | 左移动运算符 | a << 2 输出结果 240 ,二进制解释: 1111 0000(每一位往左移动n位) |
>> | 右移动运算符 | a >> 2 输出结果 15 ,二进制解释: 0000 1111(每一位往右移动n位) |
这个是跟c语言一样的,主要是把两个量,转为二进制进行位的操作
4.逻辑运算符
代码
if 0 and 1:
print("0 and 1 False")
print("0 and 1",(0 and 1))
print("False and 1",(False and 1))
print("True and 1",(True and 1))
print("\n")
if 2 or 3:
print("2 and 3 True")
print("2 or 3",(2 or 3))
print("True or 3",(True or 3))
print("False or 3",(False or 3))
print("\n")
if not 0:
print("not 0 True")
print("not 0",(not 0))
print("not False",(not False))
print("not 3",(not 3))
print("not True",(not True))
结果
('0 and 1', 0)
('False and 1', False)
('True and 1', 1)
2 and 3 True
('2 or 3', 2)
('True or 3', True)
('False or 3', 3)
not 0 True
('not 0', True)
('not False', True)
('not 3', False)
('not True', False)
总结
and | 布尔"与" - 如果x为False,x and y返回False,否则它返回y的计算值。 | (a and b) 返回 true。 |
or | 布尔"或" - 如果x是True,它返回True,否则它返回y的计算值。 | (a or b) 返回 true。 |
not | 布尔"非" - 如果x为True,返回False。如果x为False,它返回True。 | not(a and b) 返回 false |
5.成员运算符
代码
if 1 in (1,2,3,4): print("1 in (1,2,3,4)") else: print("1 not in (1,2,3,5)") if 1 not in (2,3,3): print("1 not in (2,3,4)") else: print("1 in (2,3,4)")
结果
1 in (1,2,3,4) 1 not in (2,3,4)
结论
in | 如果在指定的序列中找到值返回True,否则返回False。 | x 在 y序列中 , 如果x在y序列中返回True。 |
not in | 如果在指定的序列中没有找到值返回True,否则返回False。 | x 不在 y序列中 , 如果x不在y序列中返回True。 |
6.身份运算符
代码
a ="hahaha" b = "hahaha" print(a is b) print(id(a) == id(b))
结果
a ="hahaha" b = "hahaha" print(a is b) print(id(a) == id(b))
总结
is | is是判断两个标识符是不是引用自一个对象 | x is y, 如果 id(x) 等于 id(y) , is 返回结果 1 |
is not | is not是判断两个标识符是不是引用自不同对象 | x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1 |
感觉它有点像是判断两个值是否相等。具体有什么用处还不明白,等以后用到再深入研究吧