原副标题:python同一个操作符_身分操作符_错误率难题
同一个操作符
同一个操作符用作较为三个第一类的数据流,前述较为的是第一类的门牌号。
操作符叙述isis是推论三个URL呢提及同一个第一类is notis not 是推论三个URL呢提及相同第一类
is 与 == 差别:
is 用作推论三个表达式提及第一类与否为同一个,既较为第一类的门牌号。
== 用作推论提及表达式提及第一类的值与否成正比,预设初始化第一类的 __eq__()方式。
1
a=20
2
b=20
3
c=30
4
print(“a和b是同一个第一类”,a is b) #继续执行结论:True
5
print(“a和c是同一个第一类”,a is c) #继续执行结论False
6
print(“a和c不是同一个第一类”,a is not c) #继续执行结论True
整数缓存难题
命令行模式下,Python仅仅对较为小的整数第一类进行缓存(范围为[-5, 256])缓存起来C语言底层用数组实现,连续分配空间,便于查找,而并非是所有整数第一类。 文件模式下,所有数字都会被缓存,范围是:[-无穷大,+无穷大]) 缓存实现:[-5,256]仍然底层用数组实现;不在[-5,256]出现的数,缓存到链表中,不连续分配空间。 总结 is 较为三个第一类的 id 值与否成正比,与否指向同一个内存门牌号 == 较为的是三个第一类的内容与否成正比,值与否成正比 is 运算符比 == 效率高,在表达式和None进行较为时,应该使用 is【操作】同一个操作符测试
1
a = 1000
2
b = 1000
3
a == b #True
4
a is b #命令行下是False。 文件下继续执行是True
5
c = 10
6
d = 10
7
c is d #True
成员操作符
成员操作符测试实例中包含了一系列的成员,包括字符串,列表或元组。
操作符叙述in如果在指定的序列中找到值返回 True,否则返回 Falsenot in不在,则返回True
1
a = “python”
2
b = “py”
3
print(b in a) #True
4
c = [10,20,30]
5
print(10 not in c) #False
操作符错误率难题
如下错误率,从高到低。
操作符叙述**指数 (最高错误率)~按位翻转* / % //乘,除,取模和取整除+ -加法减法>> <<右移,左移操作符&位 AND^ |位操作符<= < > >=较为操作符<> == !=等于操作符= %= /= //= -= += *= **=赋值操作符is is not身分操作符in not in成员操作符not or and逻辑操作符
1
#测试运算符错误率
2
a,b,c,d=20,10,15,5
3
e=(a+b)*c/d #30*15/5
4
print((a+b)*c/d的继续执行结论:,e)
5
e=(a+b)*(c/d) #30*(15/5)
6
print((a+b)*(c/d)的继续执行结论:,e)
7
e=a+(b*c)/d #20+150/5
8
print(a+(b*c)/d的继续执行结论:,e)
前述使用中,记住如下简单的规则即可,复杂的表达式一定要使用小括号组织。
乘除优先加减 位运算和算术运算>较为操作符>赋值操作符>逻辑操作符基本操作符总结
操作符说明and , or , not布尔与、布尔或、布尔非is , is not同一个性推论,推论与否为同一个第一类in , not in推论与否在指定序列中<,<=,>,>=,!=,==较为值与否相当,可以连用| ^ &按位或,按位异或、按位与<<, >>移位~按位翻转+,-,*,/,//,%加,减,乘,浮点除、整数除、取余**幂运算
【操作】使用python表示数学式:
答案: (5+10*x)/5-13*(y-1)*(a+b)/x+9*(5/x+(12+x)/y)
实时效果反馈
1. 如下代码,错误的是:
A 10 in [10,20,30] 结论是:True
B “py” in “python” 结论是:True
C 100 not in [10,20,30] 结论是:False
D “hello” is “hello” 结论是:True
答案
1=>C