(七)Python运算符和优先级
一、算数运算符
算数运算符,如下表所示:
x=1
y=2
z=3
# 加法运算
a=x+y
print('a=',a)
# 减法运算
b=y-x
print('b=',b)
# 乘法运算
c=y*z
print('c=',c)
# 除法运算
d=z/y
print('d=',d)
# 取模运算
e=z%y
print('e=',e)
# 幂运算
f=y**z
print('f=',f)
输出结果:
二、比较运算符
比较运算符如下表,所示。
x=1
y=2
# 判断变量x和y是否相等
if x==y:print("x等于y")
else:print("x不等于y")
# 判断变量x和y是否不相等
if x!=y:print("x不等于y")
else:print("x等于y")
# 判断变量x小于y
if x < y:print("x<y")
else:print("x≥y")
输出结果:
三、赋值运算符
赋值运算符,如下表所示:
x=1
y=2
z=3
# 简单赋值运算
a=x+y
print("a=",a)
# 加法赋值运算
a+=x
print("a=", a)
# 乘法赋值运算
a*=z
print("a=", a)
# 除法赋值运算
a/=z
print("a=", a)
# 取模赋值运算
a%=y
print("a=", a)
# 整除赋值运算
a//=y
print("a=", a)
输出结果:
四、逻辑运算符
逻辑运算符,如下表所示:
x=1
y=2
if x and y:print("x and y is true")
else:print("x and y is false")
输出结果:
五、位运算符
位运算符把数字看作二进制来进行计算。位运算符如下表所示:
x=12 # 12=0000 1100
y=6 # 6=0000 0110
z=0# 按位与运算
z=x&y
print("z=",z)
# 按位或运算
z=x|y
print("z=",z)
# 按位异或运算
z=x^y # 10=0000 1010
print("z=",z)
# 按位取反运算
z=~x # -13=1000 1101
print("z=",z)
# 左移动运算
z=x<<2 # 48=0011 0000
print("z=",z)
# 右移动运算
z=x>>2 # 3=0000 0011
print("z=",z)
输出结果为:
六、成员运算符
成员运算符,测试实例中包含了一系列的成员,如字符串、列表、元组。
成员运算符包括in和not in,x in y表示若x在y序列中则返回True;x not in y表示若x不在y序列中则返回True。.
x='西瓜'
y='香蕉'
Fruit=['葡萄','樱桃','芒果','留恋','香蕉']# 使用in 成员运算符
if x in Fruit:print('x在Fruit中')
else:print('x不在Fruit中')# 使用not in 成员运算符
if y not in Fruit:print('不在Fruit中')
else:print('y在Fruit中')
输出结果,如下:
七、身份运算符
身份运算符为is和is not。其中,is判断两个标识符是不是引用自一个对象;is not判断两个标识符是不是引用自不同对象。
x='西瓜'
y='香蕉'# 使用is身份运算符
if x is y:print('x和y具有形同标识')
else:print('x和y不具有形同标识')# 使用not is 身份运算符
if x is not y:print('x和y不具有形同标识')
else:print('x和y具有形同标识')
输出结果:
x='西瓜'
y='西瓜'# 使用is身份运算符
if x is y:print('x和y具有形同标识')
else:print('x和y不具有形同标识')# 使用not is 身份运算符
if x is not y:print('x和y不具有形同标识')
else:print('x和y具有形同标识')
输出结果:
八、运算符优先级
运算优先符先后排序。
1、()、[]、{}
2、object
3、object[i]、object[1:r]、object.attribute、function
4、+x、-x、~x
5、x**y 👉 幂运算
6、*、/、%👉乘、除、取余
7、+、-👉加减
8、<<、>>👉移位操作
9、&(and) 、^(xor)、|(or)
10、<、<=、>、>=、==、!=、<>、is、is not、in、not in
11、not
12、and
13、or、lambda、