考虑表达式4 + 5= 9,在这里4和5被称为操作数,而 + 被称为操作符。
运算符的类型
Python语言支持以下类型的运算符。
算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
运算符成员
标识运算符
让我们一个一个地来看所有运算符。
Python算术运算符
假设变量包含a=10以及变量b=21,那么
操作符
描述
示例
+ 加法
相加运算两侧的值
a + b = 31
- 减法
操作符右侧数减去左侧操作数
a – b = -11
* 乘法
操作符两侧的值相乘
a * b = 210
/ 除法
用运算符右侧的操作数除以左侧操作数
b / a = 2.1
% 模
用右手操作数除以左手操作数并返回余数
b % a = 1
** 指数
执行运算符指数(幂)计算
a**b 就是10 的20 次幂
//
地板除 - 除法不管操作数为何种数值类型,总是会舍去小数部分,返回数字序列中比真正的商小的最接近的数字
9//2 = 4 和 9.0//2.0 = 4.0
Python比较运算符
这些运算符对它们的两侧的值进行比较,并决定它们之间的关系。它们也被称为关系运算符。
假设变量a=10和变量b=20,那么-
操作符
描述
示例
==
如果两个操作数的值相等,则条件计算结果为 true
(a == b) 其值不为 true.
!=
如果两个操作数的值不相等,则条件变为 false
(a!= b) 其值为 true.
>
如果左操作数的值大于右操作数的值,则条件为 true
(a > b) 其值不为true.
<
如果左操作数的值小于右操作数的值,则条件为 true
(a < b) 其值为true.
>=
如果左操作数的值大于或等于右操作数的值,则条件为 true
(a >= b) 其值不为 true.
<=
如果左操作数的值小于或等于右操作数的值,则条件为 true
(a <= b) 其值为 true.
Python赋值运算符
假设变量a=10和变量b=20,那么-
运算符
描述
示例
=
将右侧的操作数赋值给左侧的操作数
c = a + b 是将 a + b 的值分配到 c
+=
相加右操作数和左操作数,并分配结果到左操作数
c += a 相当于 c = c + a
-=
左操作数减去右操作数,并分配结果到左操作数
c -= a 相当于 c = c - a
*=
右操作数和左操作数相乘,并分配结果到左操作数
c *= a 相当于 c = c * a
/=
左操作数除以右操作数,并分配结果到左操作数
c /= a 相当于 c = c / a;c /= a相当于 c = c / a
%=
左操作数模除以右操作数,并分配结果到左操作数
c %= a 相当于 c = c % a
**=
执行运算符指数(幂)计算并将结果分配值给左操作数
c **= a 相当于c = c ** a
//= 地板除
对操作数进行地板除,并赋值给左操作数
c //= a 相当于 c = c // a
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
Python的内置函数 bin() 可以被用来获取整数的二进制表示。
Python语言支持以下位运算符。
运算符
描述
示例
&
操作符复制一个位到结果如果都存在于两个操作数
(a & b) (二进制为 0000 1100)
|
它复制一个位,如果存在于其中一个操作数
(a | b) = 61 (二进制为0011 1101)
^
异或运算
(a ^ b) = 49 (二进制为0011 0001)
~
它是一元,并具有“翻转”位的作用
(~a ) = -61 (二进制为1100 00112 以补码形式,由于一个带符号二进制数)
<<
二进制左移
a << = 240 (二进制为1111 0000)
>>
二进制右移
a >> = 15 (二进制为0000 1111)
Python逻辑运算符
Python语言支持以下逻辑运算符。假设变量 a = true ,变量 b = false,那么
Python操作符成员
在一个序列Python的成员操作符来测试成员,如字符串,列表或元组。 有两个成员操作符如下面所解释:
运算符
描述
示例
in
如果在指定的顺序中找到变量,计算结果为true,否则为 false
x in y, 如果x是序列y的成员,则返回true
not in
如果在指定的顺序中不能找到变量,计算结果为true,否则为 false
x not in y, 如果x不是序列y的成员,则返回true
Python标识操作符
标识运算符比较两个对象的存储单元。 两种标识操作符解释如下:
运算符
描述
示例
is
如果操作符两侧是相同的对象,计算结果为true,否则结果为 false
x is y,如果ID(x)等于ID(y)返回 1
is not
如果操作符两侧的变量是相同的对象,计算结果为false,否则 true
x is not y, 如果ID(x)不等于ID(y)返回 1
Python运算优先级
下表列出了所有从最高优先级到最低的运算符。
运算符
描述
**
幂(指数)
~ + -
补,一元加号和减号(方法名的最后两个+@和 -@)
* / % //
乘,除,取模和地板除
+ -
加法和减法
>> <<
左,右转向按位
&
位元“与”
^ |
按位异或`'和常规`或'
<= < > >=
比较运算符
<> == !=
操作符比较
= %= /= //= -= += *= **=
赋值运算符
is is not
操作符标识
in not in
操作符成员
not or and
逻辑运算符