运算符
什么是运算符?
本章节主要说明 Python 的运算符。
举个简单的例子:
python
2 + 3
在这个例子中,+
就是一个运算符。
Python 语言支持以下类型的运算符:
- 算术运算符
- 比较运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符重载
算术运算符
+
加法运算符,用于两个数相加。-
减法运算符,用于两个数相减。*
乘法运算符,用于两个数相乘。/
除法运算符,用于两个数相除。//
整除运算符,用于两个数相除,只保留整数部分。%
取模运算符,用于两个数相除,返回余数。**
幂运算符,用于两个数的乘方。
比较运算符
==
等于运算符,用于判断两个值是否相等。!=
不等于运算符,用于判断两个值是否不相等。>
大于运算符,用于判断左边的值是否大于右边的值。<
小于运算符,用于判断左边的值是否小于右边的值。>=
大于等于运算符,用于判断左边的值是否大于等于右边的值。<=
小于等于运算符,用于判断左边的值是否小于等于右边的值。
赋值运算符
=
赋值运算符,用于给变量赋值。+=
加等于运算符,用于给变量加上一个值。-=
减等于运算符,用于给变量减去一个值。*=
乘等于运算符,用于给变量乘以一个值。/=
除等于运算符,用于给变量除以一个值。//=
整除等于运算符,用于给变量整除以一个值。%=
取模等于运算符,用于给变量取模以一个值。**=
幂等于运算符,用于给变量乘方以一个值。:=
海象运算符,用于给变量赋值。
位运算符
按位运算符是把数字看作二进制来进行计算的。Python 中的按位运算法则如下:
下表中变量 a 为 60,b 为 13 二进制格式如下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
&
按位与运算符,参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0。|
按位或运算符,参与运算的两个值,如果两个相应位中有 1,则该位的结果为 1,否则为 0。^
按位异或运算符,参与运算的两个值,如果两个相应位相异,则该位的结果为 1,否则为 0。~
按位取反运算符,对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1。<<
左移动运算符,运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补 0。>>
右移动运算符,运算数的各二进位全部右移若干位,由 >> 右边的数字指定了移动的位数。
逻辑运算符
\
and
逻辑与运算符,只有所有条件都为 True,表达式才为 True。or
逻辑或运算符,只要其中有一个条件为 True,表达式就为 True。not
逻辑非运算符,用于反转表达式的结果,如果表达式为 True,则逻辑非运算符将得到 False,如果表达式为 False,则逻辑非运算符将得到 True。
成员运算符
in
成员运算符,如果在指定的序列中找到值返回 True,否则返回 False。not in
非成员运算符,如果在指定的序列中没有找到值返回 True,否则返回 False。
身份运算符
is
身份运算符,比较两个标识符是不是引用自一个对象。is not
非身份运算符,比较两个标识符是不是引用自不同对象。
运算符优先级
运算符的优先级决定了表达式中运算符的结合顺序。Python 语言中运算符的优先级从高到低依次为:
- 圆括号 ()
- 乘除 %
- 加减
- 位移 << >>
- 与或 ^
- 成员运算符 in, not in
- 身份运算符 is, is not
- 赋值运算符 =, +=, -=, *=, /=, //=, %=, **=, <<=, >>=
- 条件运算符 if-else
运算符重载
运算符重载是指在已有的运算符的基础上,定义新的运算符,以实现对特定类型对象的操作。