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 )
-
编程
+关注
关注
88文章
3587浏览量
93580 -
python
+关注
关注
55文章
4778浏览量
84439 -
运算符
+关注
关注
0文章
172浏览量
11062
发布评论请先 登录
相关推荐
评论