本篇文章主要是对python学习时的一些总结,作为学习笔记记录。
对python中的数据类型有所了解之后,就需要知道这些数据类型都支持什么样的数据运算,不过在此之前还需要了解python中的运算符都有那些。
对于python来说,存在多种运算符,主要分为几种类型:
- 算术运算符
- 关系运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
算数运算符
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 |
** | 幂 |
// | 整除 |
print(5 + 3) # 加法
print(5 - 3) # 减法
print(5 * 3) # 乘法
print(5 / 3) # 除法
print(5 // 3) # 整除
print(5 % 3) # 取余
print(5 ** 3) # 乘方
结果为:
8
2
15
1.6666666666666667
1
2
125
比较运算符
运算符 | 描述 |
---|---|
== | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
print(1 == 2)
print(1 != 2)
print(1 > 2)
print(1 < 2)
print(1 >= 2)
print(1 <= 2)
结果为:
False
True
False
True
False
True
赋值运算符
运算符 | 描述 |
---|---|
= | 赋值 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取模赋值 |
**= | 幂赋值 |
//= | 取整除赋值 |
:= | 海象运算符,可在表达式内部为变量赋值。Python3.8 版本新增运算符。 |
a = 10
print(a)
a += 3
print(a)
a -= 3
print(a)
a *= 3
print(a)
a /= 3
print(a)
a **= 3
print(a)
a //= 3
print(a)
a %= 3
print(a)
结果为:
10
13
10
30
10.0
1000.0
333.0
0.0
逻辑运算符
运算符 | 描述 |
---|---|
and | 逻辑与 |
or | 逻辑或 |
not | 逻辑非 |
print(True and False)
print(True or False)
print(not True)
结果为:
False
True
False
位运算符
运算符 | 描述 |
---|---|
& | 位与 |
| | 位或 |
^ | 位异或 |
~ | 位取反 |
<< | 左移,高位丢弃,低位补0。 |
>> | 右移 |
print(bin(63))
print(bin(13))
print(bin(63 & 13))
print(bin(63 | 13))
print(bin(63 ^ 13))
print(bin(~63))
print(bin(13 << 4))
print(bin(63 >> 4))
结果为:
0b111111
0b1101
0b1101
0b111111
0b110010
-0b1000000
0b11010000
0b11
成员运算符
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False |
a = 'hello'
print('h' in a)
print('h' not in a)
b = (1,2,3,4)
print(1 in b)
print(1 not in b)
c = (1,2,3,4)
print(1 in c)
print(1 not in c)
d = {1,2,3,4}
print(1 in d)
print(1 not in d)
e = {1:'tom',2:'jack'}
print(1 in e)
print(1 not in e)
e = {'1':'tom','2':'jack'}
print('1' in e)
print('1' not in e)
结果为:
True
False
True
False
True
False
True
False
True
False
True
False
身份运算符
身份运算符用于比较两个对象的存储单元,主要是比较运算符两端使用id()函数后的内存对象是否相同(== 只是比较两者的数值是否相同)
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is not 是判断两个标识符是不是引用自不同对象 |
a = 100
b = 100
print(id(a))
print(id(b))
print(a is b)
b = 200
print(id(a))
print(id(b))
print(a is not b)
结果为:
1523153056
1523153056
True
1523153056
1523156256
True
运算符优先级
上面提到的运算符从高到低为:
运算符 | 描述 |
---|---|
** | 指数 (最高优先级) |
~ + - | 按位翻转, 正号,负号 |
* / % // | 乘,除,求余数和取整除 |
+ - | 加法减法 |
>> << | 右移,左移运算符 |
& | 位与 |
^ | | 位异或,位或 |
<= < > >= | 比较运算符 |
== != | 等于运算符 |
= %= /= //= -= += *= **= | 赋值运算符 |
is is not | 身份运算符 |
in not in | 成员运算符 |
not and or | 逻辑运算符 |