算数运算符
加减乘除以及取余运算与 Java,C等一致,分别为 +,-,*,/,%
幂运算为 **
例如 a ** b 则表示a 的 b次方(幂)
除法向下取整为 //
例如 2 // 4 取值为 0
比较运算符
与 Java,C等一致 ==,!=,>,<,<=,>=
分别表示 等于, 不等于,大于,小于,小于等于,大于等于
赋值运算
=, += , -=, *=, /=, %= 与 Java等一,都表示先运算符号两边的值,再将结果赋值给左侧。
例如: a += b 等价于 a = (a+b)
新增 **= 幂运算且赋值, //= 除法向下取整且赋值
以及python3.8 新增 := 所谓的海象运算符,可以在表达式内部为变量赋值
示例如下:
a = "159"
if (n := len(a)) > 2:
print("great");
else:
print("onNo");
# 结果为 great 当我去除 : 时if报错, 给两边都加上括号同样报错
位运算
位运算将数字当作二进制数字来计算,与Java等一致
& , | ,^ , ~ 分别表示 按位与(均为1时为1),按位或(有一个为1则为1),按位异或(不相同时为1),取反(1变0,0变1)
同样一致的还有位移运算符,<< 左移(高位丢弃,低位补零,每一位都翻倍增长),>> 右移(每移一位减少一半)
例如
2 << 3
结果为 8 即2每次增加一倍,增加三次
逻辑运算符
python 支持的逻辑运算符,and, or, not
and x and y 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值
or x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值
not not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True
运算优先级为,not > and > or
成员运算符
python 支持的成员运算符, in, not in
in
如果在指定的序列中找到值返回 True,否则返回 False。
not in
如果在指定的序列中没有找到值返回 True,否则返回 False。
身份运算符
身份运算符用于比较两个对象的存储单元
is , is not
is: 判断两个标识符是不是引用自一个对象 引用的是同一个对象则返回 True,否则返回 False
is not: 判断两个标识符是不是引用自不同对象 引用的不是同一个对象则返回结果 True,否则返回 False
id() 函数可用于获取对象内存地址,上面的 is 可类比为 id(a) == id(b), is not 可类比为id(a) != id(b)
is 与 == 区别
is 用于判断两个变量的引用对象是否为同一个, == 用于判断引用变量的值是否相等。
运算符的优先级
由上到下依次为
**
~ + -
*/ % //
-+
< < > >
&
^ |
<= < > >=
== !=
= , %=, /=, //=, -=, +=, *=, **=
is ,is not
in ,not in
and,or,not