Python中运算符介绍

描述

 

  1. 逻辑运算符

  逻辑运算符总结:

  测试代码

  a, b, c = 1, 2, 3

  print((a 《 b) and (b 《 c))

  print((a 》 b) or (a 《 b))

  print(not (a 《 b))

  2. 比较运算符

  所有比较运算符返回 1 表示真,返回 0 表示假。 这分别与特殊变量True 和 False 等价

  测试代码

  a = 5

  if a 《= 30:

  print(“a《30”)

  if 4 《= a 《= 30:

  print(“1《=a《=10”)

  if 4 《= a & a 《= 30:

  print(“4 《= a & a 《= 30”)

  3. 位运算符

  按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如图所示:

  测试代码

  a = 0b11001

  b = 0b01000

  print(bin(a | b)) # bin()可以将数字转成二进制表示 ‘0b11001’

  print(bin(a & b)) # 与

  print(bin(a ^ b)) # 异或

  print(3 《《 2) # 左移1位相当于乘以2.左移两位相当于:3*(2*2)

  print(20 》》 1) # 右移移位相当于除以2

  4. 加法操作, 乘法操作补充

  加法操作补充

  数字相加 3+2 结果是 5

  字符串拼接 “3”+“2” 结果是 “32”

  列表、元组等合并 [10,20,30]+[5,10,100] 结果是 [10,20,30,5,10,100]

  乘法操作补充

  数字相乘 3*2 结果是 6

  字符串复制 “abc”*3 结果是 ”abcabcabc”

  列表、元组等复制 [10,20,30]*3 结果是 [10,20,30,10,20,30,10,20,30]

  5. 增强赋值运算符补充

  复合赋值可以让程序更加精炼,提高效率

  与 C 和 JAVA 不一样, Python 不支持自增(++)和自减(--)

  测试代码

  str_a = “Time”

  str_b = “Pause”

  str_c = “The”

  str_d = “WorldWorld”

  str_a += “e”

  # str_b -= “e”

  str_c *= 3

  # str_d /= 2

  print(str_a) # 加法支持字符串拼接

  print(str_b) # 减法不支持字符串裁剪

  print(str_c) # 乘法支持字符串拼接

  print(str_d) # 除法也不支持字符串操作

  a = 1 《《 2

  a 《《= 2

  print(“1左移2位”, 1 《《 2, “a左移赋值”, a)

 

  注意:

  增强赋值运算符左右需要空格, 但组成增强赋值运算符的运算符之间不需要空格

  6. 同一运算符

  同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址

  is 与 == 区别:

  is 用于判断两个变量引用对象是否为同一个,即比较对象的地址。

  == 用于判断引用变量引用对象的值是否相等,默认调用对象__eq__() 方法。

  测试代码

  a = 2

  b = 2

  c = 3

  print(“a和b是同一个对象”, a is b) # 执行结果:True, is比较的是id, 即对象的引用地址/内存地址

  print(“a和c是同一个对象”, a is c) # 执行结果False

  print(“a和c不是同一个对象”, a is not c) # 执行结果True

 

  总结

  is 比较两个对象的 id 值是否相等,是否指向同一个内存地址

  == 比较的是两个对象的内容是否相等,值是否相等

  is 运算符比 == 效率高,在变量和 None 进行比较时,应该使用 is

  7.整数缓存问题

  命令行模式下,Python仅仅对比较小的整数对象进行缓存(范围为[-5, 256])

  语言底层用数组实现,连续分配空间,便于查找 ,而并非是所有整数对象

  文件模式下,所有数字都会被缓存,范围是:[-无穷大,+无穷大])

  缓存实现:[-5,256]仍然底层用数组实现 ;不在[-5,256]出现的数,缓存到链表中,不连续分配空间

  8. 成员运算符

  成员运算符测试实例中包含了一系列的成员,包括字符串,列表或元组

  测试代码

  a = “python”

  b = “py”

  print(b in a) # True

  c = [10, 20, 30]

  print(10 not in c) # False

  9. 运算符优先级问题

  运算符优先级如下图,从高到低依次为:

  测试代码

  # 测试运算符优先级

  a, b, c, d = 20, 10, 15, 5

  e = (a + b) * c / d # 30*15/5

  print(‘(a+b)*c/d的执行结果:’, e)

  e = (a + b) * (c / d) # 30*(15/5)

  print(‘(a+b)*(c/d)的执行结果:’, e)

  e = a + (b * c) / d # 20+150/5

  print(‘a+(b*c)/d的执行结果:’, e)

  注意:

  实际使用中,记住如下简单的规则即可,复杂的表达式一定要使用小括号组织

  乘除优先加减

  位运算和算术运算》比较运算符》赋值运算符》逻辑运算符

  10. 基本运算符总结

  基本运算符注意包括以下几类:

  逻辑运算符 (not , or , and)

  比较运算符 ( 》 , 《, =, 》= , 《= )

  位运算符( &, | , 》》 , 《《 等 )

  增强运算符 ( += , -= , *= , /+ 等 )

  同一运算符 ( is , is not )

  成员运算符 ( in , not in )

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分