常见计算
几类运算符
Python 中的运算符可以分为以下几类:
- 算术运算符:用于数学计算,例如加法
+
、减法-
、乘法*
、除法/
、取余数%
、乘幂**
等。 - 比较运算符:用于比较两个值之间的关系,例如等于
==
、不等于!=
、大于>
、小于<
、大于等于>=
、小于等于<=
等。 - 逻辑运算符:用于处理布尔型数据,例如与
and
、或or
、非not
等。 - 赋值运算符:用于给变量赋值,例如等号
=
、自加运算+=
、自减运算-=
、自乘运算*=
、自除运算/=
。 - 成员运算符:用于检查一个值是否为另一个值得成员,例如
in
、not in
等。 - 身份运算符:用于检查1两个变量是否引用同一个对象,例如
is
、is not
等。
以上是 Python 中常见的运算符,可以根据不同的场景选择合适得运算符进行操作。
加减法
加法运算符 (+) 用于将两个数值相加或将两个字符串拼接起来。
注意
当进行加法运算时,如果操作数的类型不一致,Python 会自动进行类型转换。如果一个数是整数,而另一个是浮点数,则整数会被转换为浮点数,然后进行加法运算,运算结果为浮点数。加法时,如果一个数是整数,而另一个是复数,则整数会被转换为复数,然后进行加法运算,结果为复数。如果一个操作数是浮点数,而另一个是复数,则浮点数会被转换为复数,然后进行加法运算,运算结果为复数。
减法运算符 - 用于将两个数值相减,不支持字符串运算,错误信息为 TypeError: unsupported operand type(s) for -: 'str' and 'str'
。
乘除法
乘法运算符 (*) 用于将两个数值相乘或将一个字符串重复多次。
除法运算符 / 用于将两个数值相除,结果为浮点数。
取模运算符 % 用于获取两个数值相除的余数,比如 10 % 3 的结果为 1。幂运算符 ** 用于将一个数值的幂次方,比如 2**3 的结果为 8。
成员运算符
Python 中成员运算符用于测试是否存在于序列中。共有两个成员运算符:a) in
:如果在序列中找到值,返回 True,否则返回 False。b) not in
:如果在序列中没有找到值,返回 True,否则返回 False。
下面是使用例:
# 定义一个列表
my_list = [1, 2, 3, 4, 5]
# 判断元素是否在列表中
print(3 in my_list) # True
print(6 in my_list) # False
# 判断元素是否不在列表中
print(3 not in my_list) # False
print(6 not in my_list) # True
身份运算符
Python 身份运算符包括 is
和 is not
,用于判断两个对象是否引用同一个内存地址。
下面是使用例:
import copy
a = [1, 2, 3]
b = a
# 视图 b 引用 a 的内存地址
c = [1, 2, 3]
d = a.copy()
print(a is b)
# 输出 True,因为 a 和 b 引用同一个内存地址
print(a is not c)
# 输出 True,因为 a 和 c 引用不同的内存地址
print(a == c)
# 输出 True,因为 a 和 c 的值相等
print(a is not d)
# 输出 True,因为 a 和 d 引用不同的内存地址
print(a == d)
# 输出 True,因为 a 和 d 的值相等
a_2_layers = [1, 2, [3, 4]]
d_2_layers = a_2_layers.copy()
e_2_layers = copy.deepcopy(a_2_layers)
print(a_2_layers is d_2_layers)
print(a_2_layers[2] is d_2_layers[2]) # 请特别关注
print(a_2_layers is e_2_layers)
print(a_2_layers[2] is e_2_layers[2])
运算优先级
在 Python 中,不同类型的运算符优先级是不同的,当一个表达式中有多个运算符时,会按照优先级的顺序依次计算,可以使用括号改变运算顺序。下面是 Python 中常见的运算符优先级列表,从高到低排列:
括号运算符:
()
,用于改变运算顺序。正负号运算符:
+x
,-x
,用于对数字取正负。算术运算符:
**
,*
,/
,//
,%
,用于数字的算术运算。位运算符:
~
,&
,|
,^
,<<
,>>
,用于二进制位的运算。比较运算符:
<
,<=
,>
,>=
,==
,!=
,用于比较大小关系。身份运算符:
is
,is not
,用于判断两个对象是否相同。成员运算符:
in
,not in
,用于判断一个元素是否属于一个集合。逻辑运算符:
not
,and
,or
,用于逻辑运算。