一、身份运算符
这也是Python的特色语法(全部都是小写字母)。
注意is与比较运算符“==”的区别,两者有根本上的区别,切记不可混用:
is用于判断两个变量的引用是否为同一个对象,而==用于判断变量引用的对象的值是否相等!
举个例子:如果有两个人都叫张三。is比较的结果是false,因为他们是不同的两个人,==比较是True,因为他们都叫张三。
a=[1,2,3]b=abisaTrueb==aTrueb=a[:]bisaFalseb==aTrue
这里介绍一个常用的内置函数:id(),用它可以查看某个变量或者对象的内存地址,两个相同内存地址的对象被认为是同一个对象。
a=1b=2id(a)id(b)c=2id(c)
但是,我们看看下面的例子:
3.0is9/3Trueid(3.0)6id(9/3)63.0is9/3Truea=3.0id(a)6b=9/3id(b)6aisbFalseis/3False.0is/3Trueid(.0)2id(/3)833.0is99/3True
可见Python的内部机制:在没有创建任何变量的时候,比如3.0is9/3,为了减少开销和内存使用,9/3直接复用了3.0的内存地址,所以它们的is比较为True。而当你分别将3.0赋值给变量a,9/3赋值给b,就分开了内存地址,不再是同一个对象了。
二、三目运算符(三元表达式)
python中的三目运算符不像其他语言一般的表示方法:判定条件?为真时的结果:为假时的结果。
例如,C语言是这么写的:result=53?1:0
在python中的格式为:为真时的结果if判定条件else为假时的结果
例如:Trueif53elseFalse
三、运算符优先级
下表列出了从最高到最低优先级的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)