Skip to content

运算符

算数运算符

因为是整数,所以也可以进行数学中的基本运算。 使用算术运算符号,用来处理四则运算。

运算符描述实例
+10 + 20 = 30
-10 - 20 = 10
*10 * 20 = 200
/10 / 20 = 0.5
//取整除返回除法的整数部分(商) 9 // 2 输出结果 4
%取余数返回除法的余数 9 % 2 = 1
**又称次方、乘方,2 ** 3 = 8
python
>>> 9 % 4  # 取余
1
>>> 9 % 3
0
>>> 2 ** 3
8

除此之外,+ 还可以作为字符串(包括后续要介绍的序列)的连接运算符。

python
>>> s1 = 'Hello, '
>>> s2 = 'Charlie'
>>> # 使用 + 连接两个字符串
>>> print(s1 + s2)
Hello, Charlie

赋值运算符

以下假设变量 a10,变量 b20

运算符描述实例
=简单的赋值运算符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

案例

python
# 算术运行
two = 2
four = 4
# 加减乘除
print(two + four)
print(two - four)
print(two * four)
print(two / four)

# 取整、取余、取幂
print(two // four)
print(two % four)
print(two ** four)

# %% 赋值运算

two += two
print(two)
two -= two
print(two)
two *= two
print(two)
two /= four
print(two)

比较运算符

运算符功能
>大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False
>=大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False
<小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False
<=小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False
==等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False
!=不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False

逻辑运算符

Python 语言支持逻辑运算符,以下假设变量 a 为 10, b 为 20:

运算符逻辑表达式描述实例
andx and y布尔"与" ,两个条件都满足(a and b) 返回 20。
orx or y布尔"或",两个条件中满足一个(a or b) 返回 10。
notnot x布尔"非" ,否定之前的结果not(a and b) 返回 False

逻辑运算符案例:

python
x = 1
y = 0

print(x and y)
print(x or y)
print(not x)
print(not y)

# 案例升级
x = 3 > 4
y = 5 > 4

成员运算符

innot in 被称为 成员运算符

成员运算符用于 测试 序列中是否包含指定的 成员

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

身份运算符

is 比较的是 两个实例对象是不是完全相同,它们是不是同一个对象,占用的内存地址是否相同 。莱布尼茨说过:“世界上没有两片完全相同的叶子”,这个 is 正是这样的比较,比较是不是同一片叶子(即比较的 id 是否相同,这 id 类似于人的身份证标识)。

身份运算符用于比较两个对象的存储单元

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False

id() 函数用于获取对象内存地址。

身份运算符案例:

python
>>> zhengxin = ['正心', 'M', 18]                             
>>> zhengxin2 = ['正心', 'M', 18] 
>>> zhengxin == zhengxin2
True
>>> zhengxin is zhengxin2 
False
>>> id(zhengxin),id(zhengxin2) 
(2398966201152, 2398966187456)

警告

小数字不能使用 is 进行判断,因为 python 内部有 内存驻留 机制,相同的小数字会引用同一个对象。

python
>>> num = 1
>>> num2 = 1
>>> num is num2
True
>>> id(num), id(num2) 
(2398960943344, 2398960943344)
>>> num2 = 1111111111111111111111111111111111111111111111111111111111111111111111111
>>> num3 = 1111111111111111111111111111111111111111111111111111111111111111111111111
>>> num2 is num3
False
>>> id(num2), id(num3) 
(2398968822064, 2398968822192)

字符串不适用 内存驻留 机制

python

>>> name = '正心' 
>>> name2 = '正心' 
>>> name == name2 
True
>>> name is name2 
False
>>> id(name), id(name2) 
(2398966638960, 2398961922480)

运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

运算符描述
**指数 (最高优先级)
* / % //乘,除,取模和取整除
&位 'AND'
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

案例:运算符优先级

python
r = 4 > 2 ** 4 or True is 1 and '4' in "345"
if r:
    print('猜猜我的结果', r)
else:
    print('猜猜我的结果', r)