3. Python3 运算符

2023/07/31閱讀時間約 6 分鐘

Hi,大家好。我是茶桁。

前两节我们学习了基本的Python特性和语法,并且认识了一些基本的Python脚本。今天,我们来学习一下Python的运算符,而我们选择的版本为Python3。

什么是运算符

为了能让我们的学习顺利进行下去,首先我们需要先弄明白:什么是运算符

这里举一个简单的栗子:4 + 5 = 9, 在这个简单的数学计算栗子中,4和5倍称为操作数,+就被成为是运算符, 最后9就是它的运算结果。

到这里,我们对于运算符应该有了一个基本的认知,那么Python语言都支持哪些运算符呢?如下列表:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

接下来,就让我们来一个个的学习Python的运算符

算术运算符

raw-image
 # 算术运算符
 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


比较运算符

raw-image
 # 比较运算符
 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


赋值运算符

raw-image
 # 赋值运算符
 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)

输出结果:

 31
 41
 31
 310
 31.0
 1.0
 10
 1


位运算符

按位运算符是把数字看作二进制来进行计算的。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
raw-image
 # 位运算符
 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:

raw-image
 # 逻辑运算符
 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还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

raw-image
 # 成员运算符
 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

身份运算符

身份运算符用于比较两个对象的存储单元

raw-image

注: 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 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。

运算符优先级

以下表格列出了从最高到最低优先级的所有运算符:

raw-image

注意:Pyhton3 已不支持 <> 运算符,可以使用 != 代替


本教程相关代码可在此查看

茶桁
茶桁
80后,先后在多家大厂担任数据产品经理,中台产品。
留言0
查看全部
發表第一個留言支持創作者!