Python语言支持以下类型的运算符:
- 算术运算符
- 比较(关系)运算符
- 赋值运算符
- 逻辑运算符
- 位运算符
- 成员运算符
- 身份运算符
- 运算符优先级
下面主要讲一下成员运算符、身份运算符、逻辑运算符以及运算符优先级
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
fruit = ['apple','orange','banana']
ret = 'apple' in fruit # ret的值为True
ret = 'apple' not in fruit # ret的值为False
身份运算符常用作条件判断语句的条件
# 如果'apple'存在于列表中,则删除该元素
if 'apple' in fruit:
fruit.remove('apple')
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is not 是判断两个标识符是不是引用自不同对象 |
注:身份运算符比较内存地址是否相等, == 用于判断引用变量的值是否相等。
# 上述代码继续
fruit is [] # 返回的是False,fruit不是一个空列表
list1, list2 = [1,2,3],[1,2,3]
list1 is list2 # 返回的是False,两个列表的引用地址不一样
a , b = 1, 1
a is b # 返回的是True,number类型不是引用类型,值相等即身份相同
注意几种特例
[] is None # 返回False,空列表不等于None
'' is None # 返回False,空字符串不等于None
None is None # 返回True
# 如果需要判断空字符串或者空的序列 直接用下面代码
a, b = '',[]
if a:
print('打印a') # 不会执行该语句
if b:
print('打印b') # 不会执行该语句
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。 |
or | x or y | 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 |
not | not x | 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 |
逻辑运算符的优先级是非与或
a, b, c = True,False,True
a and b # False
a or b # True
not a # False
not a and b or c # 按照优先级返回True
逻辑运算符常常和条件语句一起使用,用来判断一些条件