Hi,大家好。我是茶桁。
前两节我们学习了基本的 Python 特性和语法,并且认识了一些基本的 Python 脚本。今天,我们来学习一下 Python 的运算符,而我们选择的版本为 Python3。
什么是运算符
为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符。
这里举一个简单的栗子:4+5=9, 在这个简单的数学计算栗子中,4 和 5 倍称为操作数,+
就被成为是运算符, 最后 9 就是它的运算结果。
到这里,我们对于运算符应该有了一个基本的认知,那么 Python 语言都支持哪些运算符呢?如下列表:
算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级
接下来,就让我们来一个个的学习 Python 的运算符
算术运算符
# 算术运算符
a = 10
b = 21
print("a+b=", a+b)
print("a-b=", a-b)
print("a*b=", a*b)
print("b/a=", b/a)
print("b%a=", b%a)
print("a**b=", a**b)
print(9//2)
print(-9//2)
复制代码
输出结果:
a+b= 31
a-b= -11
a*b= 210
b/a= 2.1
b%a= 1
a**b= 1000000000000000000000
4
-5
复制代码
比较运算符
# 比较运算符
print("a==b:", a==b)
print("a!=b:", a!=b)
print("a>b:", a>b)
print("a<b:", a<b)
print("a>=b:", a>=b)
print("a<=b:", a<=b)
复制代码
输出结果:
a==b: False
a!=b: True
a>b: False
a<b: True
a>=b: False
a<=b: True
复制代码
赋值运算符
# 赋值运算符
c = a+b
print(c)
c+=a
print(c)
c-=a
print(c)
c*=a
print(c)
c/=a
print(c)
c%=a
print(c)
c=a
print(c)
c//=a
print(c)
复制代码
输出结果:
位运算符
按位运算符是把数字看作二进制来进行计算的。bin()
函数可以把数字转为二进制。
Python 中的按位运算法则如下:
下表中变量 a 为 60,b 为 13 二进制格式如下:
a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100
a|b = 0011 1101
a^b = 0011 0001
~a = 1100 0011
复制代码
# 位运算符
print(bin(20))
a = 60
b = 13
print("a = ", bin(a), ", b = ", bin(b))
print("a&b =",bin(a&b))
print("a|b =",bin(a|b))
print("a^b =",bin(a^b))
print("~a =",bin(~a))
print("a<<2 = ",bin(a<<2))
print("a>>2 = ",bin(a>>2))
复制代码
输出结果:
0b10100
a = 0b111100 , b = 0b1101
a&b = 0b1100
a|b = 0b111101
a^b = 0b110001
~a = -0b111101
a<<2 = 0b11110000
a>>2 = 0b1111
复制代码
逻辑运算符
Python 语言支持逻辑运算符,以下假设变量 a 为 10, b 为 20:
# 逻辑运算符
a = 10
b = 20
print("a and b = ", a and b)
print("a or b = ", a or b)
print("not(a and b) = ", not(a and b))
复制代码
输出结果:
a and b = 20
a or b = 10
not(a and b) = False
复制代码
成员运算符
除了以上的一些运算符之外,Python 还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
# 成员运算符
x = [0, 1, 2, 3, 4, 5, 6, 7]
y = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("x in y :", x in y)
print("x not in y :", x not in y)
复制代码
输出结果:
x in y : False
x not in y : True
复制代码
身份运算符
身份运算符用于比较两个对象的存储单元
注: id() 函数用于获取对象内存地址。
# 身份运算符
x = 10
y = x
print("x is y:", x is y)
x = 10
y = 10
print("x is y:", x is y)
print("id(x) == id(y)", id(x) == id(y))
print("x is not y:", x is not y)
id(x)
复制代码
输出结果:
x is y: True
x is y: True
id(x) == id(y) True
x is not y: False
4312793616
复制代码
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
注意:Pyhton3 已不支持 <> 运算符,可以使用 != 代替
本教程相关代码可在此查看
评论