Python有两个运算符,在其他语言中可能没有见过。一个成员运算符,一个是身份运算符。
一.成员运算符
2
看如下代码,我们创建了一个L列表,然后创建了一个变量为3.然后,a是否在L中。
3
结果如下,3确实在L中,所以返回True.
4
我们把a的值设置为20,在运行一下,返回的值就是False。
5
再看另一个,not in。和in是相反的,如果在指定的序列中没有找到值返回True,找到了返回False.
6
如下图所示,将in改成not in。返回值就是True了。
二.身份运算符
1
身份运算符用于比较2个对象的存储单元。包括:is ,not is.我们先说is
2
is用于判断2个标识符的引用是否一样。如下图所示,a和b的引用是一样的,有点类似于ID是否一样。
3
所以,执行的结果是True,ID也都是一样的
4
现在,将代码改成如下模式
5
可以发现,返回的是False,ID值也不一样了。
6
这是因为Python和其他语言的处理方式可能不一样。比如C语言,如果创建一个变量a,那么a本身是指向一个内存空间的。如果我执行了a=a+1,那么a执行的内存空间里的值会变化,然后将这个地址再赋值给a。
7
但Python不同,对Python来说,数值和字符串是不可变的对象。如果对这个对象进行+1操作,那么结果就是会得到一个新的对象。如下图所示,a的id值发生了变化。
下一篇:js中的运算符详解