Hi,大家好。我是茶桁。
前两节我们学习了基本的 Python 特性和语法,并且认识了一些基本的 Python 脚本。今天,我们来学习一下 Python 的运算符,而我们选择的版本为 Python3。
什么是运算符
为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符。
这里举一个简单的栗子:4+5=9, 在这个简单的数学计算栗子中,4 和 5 倍称为操作数,+就被成为是运算符, 最后 9 就是它的运算结果。
到这里,我们对于运算符应该有了一个基本的认知,那么 Python 语言都支持哪些运算符呢?如下列表:
算术运算符
比较(关系)运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级
接下来,就让我们来一个个的学习 Python 的运算符
算术运算符
# 算术运算符a = 10b = 21print("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= 31a-b= -11a*b= 210b/a= 2.1b%a= 1a**b= 10000000000000000000004-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: Falsea!=b: Truea>b: Falsea<b: Truea>=b: Falsea<=b: True
复制代码
赋值运算符
# 赋值运算符c = a+bprint(c)c+=aprint(c)c-=aprint(c)c*=aprint(c)c/=aprint(c)c%=aprint(c)c=aprint(c)c//=aprint(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 = 60b = 13print("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))
复制代码
输出结果:
0b10100a = 0b111100 , b = 0b1101a&b = 0b1100a|b = 0b111101a^b = 0b110001~a = -0b111101a<<2 = 0b11110000a>>2 = 0b1111
复制代码
逻辑运算符
Python 语言支持逻辑运算符,以下假设变量 a 为 10, b 为 20:
# 逻辑运算符a = 10b = 20print("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 = 20a or b = 10not(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 : Falsex not in y : True
复制代码
身份运算符
身份运算符用于比较两个对象的存储单元
注: id() 函数用于获取对象内存地址。
# 身份运算符x = 10y = xprint("x is y:", x is y)
x = 10y = 10print("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: Truex is y: Trueid(x) == id(y) Truex is not y: False
4312793616
复制代码
is 与 == 区别:
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
运算符优先级
以下表格列出了从最高到最低优先级的所有运算符:
注意:Pyhton3 已不支持 <> 运算符,可以使用 != 代替
本教程相关代码可在此查看
评论