fycheng - python 语法与数据结构 - 运算符

1 运算符

Python 语言常用运算符如下:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

这些运算符,根据使用操作数的不同,可分为:

  • 单目运算符
  • 双目运算符
  • 三目运算符

2 算术运算符

运算符 描述
+ 加法 : 两个操作数相加 两个字符串相拼接
- 减法 : 两个操作数相减
* 乘法 : 两个操作数相乘 多个字符串拼接
/ 除法 : 两个操作数相除,结果为浮点数类型
% 取模 : 也称为求余运算符, 两个操作相除,取余数为计算结果 :grinning: 取模用法 n % 10 取10以内的数字
** 幂运算 :返回 x 的 y 次幂
// 整除 : 两个操作数相除,取商,结果为整数类型 :grinning: 取的是整数部分

3 赋值运算符
赋值运算符是使用 = 做为运算符号,将运算符右侧的数据或表达式的结果,保存到运算符左侧的标识符中, 运算符右侧可以是任意类型的数据,但左侧必须是一个变量,否则会报错

Python 中提供的赋值运算符如下表所示:

运算符 描述 实例
= 简单的赋值运算符 c = a + ba + 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
赋值运算符优先级是最低的 
n = 2
# 该表达式结果为 14, 并不是10
# 如果一定要展开,可以理解展开后为 n = n * ( 3 + 4)
n *= 3 + 4
print(n)

4 关系比较运算符
关系运算符也称为比较运算符,用来对参与运算的两个操作数进行比较,确认两个操作数之间的关系,运算结果会返回一个布尔值

Python 中提供的关系运算符如下表所示:

运算符 描述
== 等于 : 比较对象是否相等
!= 不等于 : 比较两个对象是否不相等
> 大于 : 返回 x 是否大于 y
< 小于 : 返回 x 是否小于 y
>= 大于等于 : 返回 x 是否大于等于 y
<= 小于等于 : 返回 x 是否小于等于 y

如果是字符串比较,是从第一个字符 逐个比较

5 逻辑运算符
逻辑运算符一般用来解决当有多个关系条件需要判断时使用,用来确定这些条件组合的方式,运算结果为布尔类型值。

Python 中提供的逻辑运算符如下表所示:

运算符 逻辑表达式 描述
and x and y 逻辑"与" : 如果 xFalsex and y 返回 False,否则它返回 y的计算值。
or x or y 逻辑"或" : 如果 x非 0,它返回 x 的计算值,否则它返回 y 的计算值。
not not x 逻辑"非" : 如果 xTrue,返回 False 。如果 xFalse,它返回 True

print 语句的返回值是None

6 成员运算符
Python 提供了成员运算符,用于判断实例中是否包含了一系列的成员,包括字符串,列表或元组。

如下表所示:

运算符 描述
in 如果在指定的序列中找到值返回 True,否则返回 False
not in 如果在指定的序列中没有找到值返回 True,否则返回 False

7 身份运算符
身份运算符如下表所示:

运算符 描述
is is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象

is== 的区别

在 Python 中,万物皆对象,而对象的三个基本要素:

  • 内存地址
  • 数据类型

is== 都作为常用的判断语句去进行使用,这两者之间的主要区别是:

  • == 运算符: 只比较两个对象的值,相同返回 True,不同返回 False
  • is 运算符: 比较两个对象的地址引用,相同返回 True,不同返回 False