python同一运算符_身份运算符_优先级问题:符箓符身
同一运算符
同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址符箓符身。
运算符描述isis是判断两个标识符是不是引用同一个对象is notis not 是判断两个标识符是不是引用不同对象
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
整数缓存问题
总结
【操作】同一运算符测试
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