运算符用于对变量和值执行操作。在下面的示例中,我们使用 + 运算符将两个值相加:
print(10 + 5)
Python 将运算符分为以下几组:
-
算术运算符
-
赋值运算符
-
比较运算符
-
逻辑运算符
-
身份运算符
-
成员运算符
-
位运算符
算术运算符
算术运算符用于对数字值执行常见的数学运算:
|运算符|名称|示例| |-|-|-| |+|加法|x + y| |-|减法|x - y| |*|乘法|x * y| |/|除法|x / y| |%|取模|x % y| |**|幂|x ** y| |//|地板除|x // y|
赋值运算符
赋值运算符用于将值赋给变量:
|运算符|示例|等同于| |-|-|-| |=|x = 5|x = 5| |+=|x += 3|x = x + 3| |-=|x -= 3|x = x - 3| |*=|x *= 3|x = x * 3| |/=|x /= 3|x = x / 3| |%=|x %= 3|x = x % 3| |//=|x //= 3|x = x // 3| |**=|x **= 3|x = x ** 3| |&=|x &= 3|x = x & 3| ||=|x| |^=|x ^= 3|x = x ^ 3| |>>=|x >>= 3|x = x >> 3| |<<=|x <<= 3|x = x << 3|
比较运算符
比较运算符用于比较两个值:
|运算符|名称|示例| |-|-|-| |==|等于|x == y| |!=|不等于|x != y| |>|大于|x > y| |<|小于|x < y| |>=|大于等于|x >= y| |<=|小于等于|x <= y|
逻辑运算符
逻辑运算符用于组合条件语句:
|运算符|描述|示例| |-|-|-| |and|如果两个语句都为真|x < 5 and x < 10| |or|如果其中一个语句为真|x < 5 or x < 4| |not|反转结果,如果结果为真|not(x < 5 and x < 10)|
身份运算符
身份运算符用于比较对象,不是比较它们是否相等,而是比较它们是否实际上是同一个对象,具有相同的内存位置:
|运算符|描述|示例| |-|-|-| |is|如果两个变量是同一个对象|x is y| |is not|如果两个变量不是同一个对象|x is not y|
成员运算符
成员运算符用于测试一个序列是否出现在一个对象中:
|运算符|描述|示例| |-|-|-| |in|如果指定值在对象中,则返回 True|x in y| |not in|如果指定值不在对象中,则返回 True|x not in y|
位运算符
位运算符用于比较(二进制)数字:
|运算符|名称|描述|示例| |-|-|-|-| |&|与|如果两个位都是1,则将每个位设置为1|x & y| |||或|如果两个位中的一个位为1,则将每个位设置为1|x| |^|异或|如果两个位中的一个位为1,则将每个位设置为1|x ^ y| |~|非|反转所有位|~x| |<<|左移|通过从右侧推入零并让最左侧的位掉落,将左移|x << 2| |>>|有符号右移|通过从左侧推入最左侧位的副本并让最右侧的位掉落,将右移|x >> 2|
运算符优先级
运算符优先级描述了操作执行的顺序。
示例,括号具有最高优先级,意味着必须首先评估括号内的表达式:
print((6 + 3) - (6 + 3))
示例,乘法 * 的优先级高于加法 +,因此在执行加法之前会执行乘法:
print(100 + 5 * 3)
优先级顺序在下表中描述,从最高优先级开始:
|运算符|描述| |-|-| |()|括号| |**|指数| |+x -x ~x|一元加法、一元减法和按位取反| |* / // %|乘法、除法、地板除法和取模| |+ -|加法和减法| |<< >>|按位左移和右移| |&|按位与| |^|按位异或| |||按位或| |== != > >= < <= is is not in not in|比较、身份和成员运算符| |not|逻辑 NOT| |and|逻辑 AND| |or|逻辑 OR|
如果两个运算符具有相同的优先级,表达式将从左到右进行评估。
示例,加法 + 和减法 - 具有相同的优先级,因此我们从左到右评估表达式:
print(5 + 4 - 7 + 3)