Python运算符

我们将在这一节里介绍Python运算符的相关知识。

运算符是对操作数 (值或变量) 执行特定操作的特殊符号, 例如, 在a + b 中, + 是操作变量 a 和 b 的运算符, 这些变量称为操作数。

下面是 Python 运算符的一些类型:

Python算术运算符:

算术运算符对变量进行加法、减法、乘法等算术运算的运算符。

以下表格列出了Python 算术运算符以及示例:

运算符 描述 例子
+ 加法运算 a + b, +a
- 减法运算 a - b, -a
* 乘法运算 a * b
/ 除法运算,结果总是返回浮点类型。 a / b
% 求余运算 a % b
// 取整除,结果返回舍去小数部分的整数 a // b
** 幂运算,返回x的y次方 a ** b

Python算术运算符实例:

下面的代码中是, 算术运算符用于两个操作数的例子:

a = 24
b = 7
print('a + b =', a+b)
print('a - b =', a-b)
print('a * b =', a*b)
print('a / b =', a/b)
print('a // b =', a//b)
print('a ** b =', a**b)
a + b = 31
a - b = 17
a * b = 168
a / b = 3.4285714285714284
a // b = 3
a ** b = 4586471424

Python比较运算符:

比较运算符是用来比较两个值大小的运算符,运算符的结果是二选一,True 或是False

下面列举出Python中的比较运算符:

运算符 描述 例子
> 大于 - 比较a是否大于b a > b
< 等于 - 比较a是否小于b a < b
== 等于 - 比较两变量是否相等 a == b
!= 不等于 - 比较两变量是否不相等 a != b
>= 大于等于 - 比较a是否大于或等于b a >= b
<= 小于等于 - 比较a是否小于或等于b a <= b

Python比较运算符实例:

下面举例来说明Python比较运算符的应用。

a = 12
b = 24
print('a > b is ', a>b)
print('a < b is ', a<b)
print('a == b is ', a==b)
print('a != b is ', a!=b)
print('a >= b is ', a>=b)
print('a <= b is ', a<=b)
a > b is False
a < b is True
a == b is False
a != b is True
a >= b is False
a <= b is True

Python逻辑运算符:

运算符 描述 例子
and 与运算 - 如果两侧逻辑都为True,则结果为True,否则为False a and b
or 或运算 - 如果两侧逻辑有一个为True,则结果为True,否则为False a or b
not 非运算 - 如果a为True,返回False; 如果a为False,返回True not a

Python逻辑运算符实例

下面举例来说明Python逻辑运算符的具体应用。

a = False
b = True
print('a and b =', a and b)
print('a or b =', a or b)
print('not b =', not b)
a and b = False
a or b = True
not b = False

Python位运算符:

Python位运算符执行位运算,其中的操作数是执行位运算的二进制数字。 下面列出来Python中所有的位运算符,为了方便说明,我们取a = 4 (0b100) 以及b = 5 (0b101):

运算符 描述 例子
& 位与操作符 - 当两侧数字在该位上都是1的时候,结果该位也为1,否则为0 a &b = 4
| 位或操作符 - 当两侧数字在该位上只要有一个是1的时候,结果该位为1,否则为0 a | b = 5
~ 位取反操作符 - 对操作数进行按位取反操作,1变成00变成1 ~a = -5
^ 位异或操作符 - 当两侧数字对应位二进制相异时,结果为1 a^b= 1
>> 右移操作符 - 将>>左侧的数字右移若干位,左侧补齐0 a >>2= 1
<< 左移操作符 - 将>>左侧的数字左移若干位,右侧补0,左侧高位数舍弃 a<< 2 =16

Python赋值运算符:

赋值运算符 = 为变量分配数值。赋值运算符对变量进行初始化,比如x = 1 将数值1赋值给变量x

在Python 中, 有复合赋值运算符, 它们是将算术运算符和赋值运算符相组合, 或者是将按位和赋值运算符相组合。

比如,x += 2 就是一个复合赋值语句, 其中2与变量 x相加, 结果存储在变量x中。

下面是赋值运算符以及复合赋值运算符的列表。

运算符 例子 等效于
= a = 8 a = 8
+= a += 8 a = a + 8
-= a -= 8 a = a - 8
*= a *= 8 a = a * 8
/= a /= 8 a = a / 8
%= a %= 8 a = a % 8
//= a //= 8 a = a // 8
**= a **= 8 a = a ** 8
&= a &= 8 a = a & 8
|= a |= 8 a = a | 8
^= a ^= 8 a = a ^ 8
>>= a >>= 8 a = a >> 8
<<= a <<= 8 a = a << 8

Python特殊运算符:

在 Python 编程中, 有一些运算符具有特殊的含义, 称为特殊运算符, 例如身份运算符以及成员运算符等。In Python

身份运算符:

在 Python 中, 运算符isis not被称为身份运算符。身份运算符用于确定两个变量是否是内存的同一部分。所以两个变量是相等的, 两个变量是相同的是两个不同的语句。两个变量假如具有相同的数值,那它们两个数值相等,但并不是同一个Python对象。

运算符 描述
is 两个变量具有相同的内存位置
is not 两个变量不是指向相同的内存位置

Python身份运算符实例

下面具体来说明下Python身份运算符的含义,

>>> a = [1]
>>> b = [1]
>>> c = a
>>> a is b
False
>>> a is c
True

ab虽然具有相同的数据,都是列表[1],但它们指向的不是同一个内存对象,所以a is not b。但c=aa的内存地址赋予了c的内存地址,所有它们指向了同一个Python对象,所以a is c是成立的。你可以用id(x)内置函数来具体查看变量的内存地址

>>> id(a), id(b), id(c)
(87402760L, 87404296L, 87402760L)

从结果也能看出来,ac具有相同的内存地址,并且同b不同。

Python成员运算符:

在Python中,运算符innot in被称为成员运算符。 成员运算符用于检查变量是否位于序列(列表,元组,字符串和字典)中。 所以两个变量相等并且两个变量相同是两个不同的语句。

对Python字典进行运算符操作的时候,它只能检查字典中的键,而不是检查值。

运算符 描述
in in前面的变量后面的序列中时,结果为True
not in in前面的变量不在后面的序列中时,结果为True

Python成员运算符实例

>>> a = 'Python Programming'
>>> print('y' in a)
True
>>> print('b' not in a)
True
>>> print('b' in a)
False
>>> x = {1:2;3:4}
>>> 1 in a
True
>>> 2 in a
False

y存在于序列a(字符串)中,因此y in a返回True。 类似地,b不存在a中,所以返回False

字典x具有两个键13,它们的值分别是241是字典的键,所以1 in a成立;虽然2是字典中某个键的值,但并不是键,所以2 in a并不成立。