首先,我们先来思考下,如何判断两个对象相同呢?
>>> a=1
>>> b=1
>>> c=2
>>> a == b #a和b的值是相等的,所以返回True
True
>>> a == c #a和c的值是不相等的,所以返回False
False
>>> 3 == 3.0
True
#查看下a、b、c三者的IP地址
>>> id(a)
503034944
>>> id(b) #a和b的内存地址是一样的
503034944
>>> id(c)
503034976
>>> id(3)
503035008
>>> id(3.0) #3和3.0的地址也是一样的
29956688
从上面程序可看出,“==”判断的是数值,只要数值一样就返回True,即使内存地址不同
目录
1、逻辑运算符——and、or、not
and 两个条件都要成立
or 只有一个条件成立就可以
not 不成立
其中,not、and优先级是高于or的
>>> 1==1 and 1==2 #因1不等于2,所以返回False
False
>>> 1==1 or 1==2
True
>>> not 1==2
True
>>> not 1==1
False
查看对象类型
type(object) 查看object的类型
isinstance(object,对象类型)判断object是不是指定的类型
>>> a =1
>>> b='hello'
>>> isinstance(a,int) #判断a是不是整数
True
>>> isinstance(b,int) #判断b是不是整数
False
2、运算符优先级
运算符 |
描述 |
+、-、/、* |
算术运算符 |
**、%、// |
|
<、>、<=、>= |
比较运算符 |
==、!= |
|
=、/=、-=、+=、*=、 |
赋值运算符 |
%=、**=、//= |
|
is、is not |
身份运算符 |
in、not in |
成员运算符 |
not > and > or |
逻辑运算符 |
2.1、身份运算符
is判断是内存地址而非数值
#身份运算符
>>> a = 1
>>> b = 1
>>> a is b
True
>>> a = [1,2,3]
>>> b = [1,2,3]
>>> a is b #is判断的是内存地址
False
>>> id(a)
55078856
>>> id(b)
29945288
>>> a is not b
True
2.2、成员运算符
>>> a=[1,2,3]
>>> 3 in a
True
>>> 5 not in a
True