算数运算符
在 Python 中的算数运算符有如下几个:
+
:加,a + b
则表示求a
加b
的和;-
:减,a - b
则表示求a
减b
的差;*
:乘,a * b
则表示求a
乘以b
的积;/
:除,a / b
则表示求a
除以b
的商;//
:地板除(取商的整数部分),a // b
则表示求a
除以b
的商的整数部分;%
:取余,a % b
则表示求a
除以b
的余数;**
:幂,a ** b
则表示求a
的b
次幂的结果;
看如下示例:
var1 = 10
var2 = 7
res = var1 + var2
print(res) # 17
res = var1 - var2
print(res) # 3
res = var1 * var2
print(res) # 70
res = var1 / var2
print(res) # 1.4285714285714286
# / 除以 , 结果永远是一个小数
res = 6 / 3
print(res) # 2.0
# // 地板除,取结果整数部分,结果不是小数
res = 6 // 3
print(res) # 2
res = 6 // 4 #
print(res) # 1
# // 地板除,如果除数或者被除数含有小数,那么结果是小数
res = 6 // 3.0
print(res) # 2.0
# % 取余
res = var1 % var2
res = 10 % -7 # -4 3+(-7)=-4
res = -10 % 7 # 4 -3+7 = 4
res = -10 % -7 # -3 -3
# ** 幂运算
res = 2 ** 3
print(res) # 8
比较运算符
Python 中的比较运算符有如下几个:
>
:大于,a > b
则表示a
是否大于b
;<
:小于,a < b
则表示a
是否小于b
;、>=
:大于等于,a >= b
则表示a
是否大于等于b
;<=
:小于等于,a <= b
则表示a
是否小于等于b
;==
:等于,a == b
则表示a
是否等于b
;!=
:不等于,a != b
则表示a
是否不等于b
;
注意,单个等号
=
是赋值哦。
比较运算符只会产生两个结果: True
或 False
,看如下示例:
res = 5 > 6
print(res) # False
res = 10 <= 10
print(res) # True
res = 10 <= 3
print(res) # False
# == 比较等号两边的值是否相等
res = 9 == 9
print(res) # True
# != 比较等号两边的值是否不相等
res = 9 != 9
print(res) # False
赋值运算符
Python 中的赋值运算符有如下几个:
=
:赋值,如a = b
就是将b
的值赋给a
;+=
:累加赋值,a += b
同a = a + b
;-=
:累减赋值,a -= b
同a = a - b
;*=
:累乘赋值,a *= b
同a = a * b
;/=
:累除赋值,a /= b
同a = a / b
;//=
:累地板除赋值,a //= b
同a = a // b
;%=
:累商赋值,a %= b
同a = a % b
;**=
:累幂赋值,a **= b
同a = a ** b
;
例:
# 给 a 赋值 2
a = 2
print(a) # 2
# +=,累加
# a += b -> a = a + b
a = 10
a += 5
print(a) # 15
# %=
# a %= b -> a = a % b
a = 7
a %= 2
print(a) # 1
成员运算符
在 Python 中的成员运算符有:
in
:是否存在,a in container
表示 a
是否存在于 container
中;
not in
:是否不存在,a not in container
,表示 a
是否不存在于 container
中;
其功用类似 SQL 中的 in
和 not in
,只不过在 Python 中针对的是容器类型对象,而在数据库中针对的是某表的某列,其结果一定是布尔值。
例:
# 针对于字符串
"""要求字符串是一个连续的片段"""
strvar = "好看的皮囊千篇一律,有趣的灵魂200多斤"
res = '好' in strvar
print(res) # True
res = "千篇一律" not in strvar
print(res) # False
res = "趣灵" in strvar
print(res) # True
# 针对于 list tuple set
listvar = ["范冰冰","李冰冰","周冬雨"]
res = "范冰冰" in listvar
print(res) # True
tuplevar = ("易烊千玺","胡军","刘德华")
res = "刘德华" not in tuplevar
print(res) # False
setvar = {"何润东","吕布","刘备"}
res = "吕布" in setvar
print(res) # True
# 针对于 dict
"""针对于字典中的键来进行判定"""
dictvar = {"lb":"吕布","hrd":"何润东","wy":"王源"}
res = "lb" in dictvar
print(res) # True
res = "hrd" not in dictvar
print(res) # False
res = '吕布' in dictvar
print(res) # False
身份运算符
Python 中的身份运算符有:
is
:是否相同地址,a is b
则表示a
于b
在内存中的地址是否相同;is not
:是否不同地址,a is not b
则表示a
和b
在内存中的地址是否不同;
例:
# 整型
var1 = 2222
var2 = 2222
res = var1 is var2
print(res) # True
# 浮点型
var1 = -90.1
var2 = -90.1
res = var1 is var2
print(res) # True
# 容器类型数据,地址不同
var1 = (1,2,3)
var2 = (1,2,3)
res = var1 is not var2
print(res) # False
逻辑运算符
Python 中的逻辑运算符有如下几个:
and
:全真则真,一假则假;or
:全假则假,一真则真;not
:真变假,假变真;
例:
# and 逻辑与
"""全真则真,一假则假"""
res = True and True # True
res = True and False # False
res = False and True # False
res = False and False # False
print(res)
# or 逻辑或
"""全假则假,一真则真"""
res = True or True # True
res = True or False # True
res = False or True # True
res = False or False# False
print(res)
# not 逻辑非
"""真变假,假变真"""
res = not True # False
res = not False # True
print(res)
# 逻辑短路
True or print("111") # True
False and print("222") # False
逻辑运算符的优先级从高到低排序为 () > not > and > or
,看如下示例:
res = 5 or 6 # 5
res = 5 and 6 # 6
res = 5 or 6 and 7
# 6 and 7 => 5 or 7 => 5
res = 5 and 6 or 7
# 5 and 6 => 6 or 7 => 6
res = not 5 or 6 and 7
# not 5 => False or 6 and 7 => False or 7 => 7
res = not (5 or 6) and 7
# not 5 and 7 => False and 7
res = 1>2 and 3<4 or 5>6 or 7<10 and 100>99
# False and True or False or True and True
# False or False or True
# False or True
# True
res = 1<2 or 3<4 or 5>6 or 7<10 and 100>99
# True or True or False or True and True
# True or True or False or True
# True or False or False or False
print(res)
位运算符
Python 中的位运算符有如下几种:
&
:按位与;|
:按位或;^
:按位异或;<<
:按位左移;>>
:按位右移;~
:按位非;
例:
# & 按位与
var1 = 19
var2 = 15
res = var1 & var2
print(res)
"""
10011
01111
00011 => 3
"""
# | 按位或
var1 = 19
var2 = 15
res = var1 | var2
print(res)
"""
10011
01111
11111 => 31
"""
# ^ 按位异或 (两者不一样返回True,两者一样返回False)
var1 = 19
var2 = 15
res = var1 ^ var2
print(res)
"""
10011
01111
11100 => 28
"""
# << 左移 5 乘以 2的2次幂
res = 5 << 2
"""
0000101
0010100 => 20
"""
print(res)
# >> 右移 5 除以 2的1次幂
res = 5 >> 1
"""
0000101
0000010
"""
print(res) # 2
# ~ 按位非 公式: -(n+1)
res = ~(20)
print(res) # 21
小结
在上述介绍的各种运算符中:
- 优先级最高的符号是
**
幂运算; - 优先级最低的符号是
=
赋值;
整体来说一元运算符的优先级高于二元运算符:
- 一元运算符:同一时间,只操作一个数字的是一元(如
-
、~
); - 二元运算符:同一时间,只操作二个数字的是二元,(如
+
、-
、*
、/
);
逻辑运算符的优先级从高到低排序为:
()
;not
;and
;or
;
算数运算符的优先级规律为:
- 先算乘除,后算加减;
位运算符的优先级从高到低为:
>>
和<<
;&
;^
;|
;
所有运算符类型优先级从高到低排序如下:
- 算数运算符
- 位运算符
- 比较运算符
- 身份运算符
- 成员运算符
- 逻辑运算符
评论区