一、数据类型之可变与不可变
可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的。如:list、dict
不可变类型:值改变,id也变了,证明是产生新的值,没有改变原值,证明原值是不可以被修改的,是不可分割的整体。如:int、float、str、tup、bool
二、条件
2.1 条件判断之后会得到一个布尔值,条件就是被比较的一方;
2.1 条件可以是:True、False。隐式布尔值有0、None、空(空字符串、空列表、空字典),代表的布尔值为False,其余都为真。
三、逻辑运算符
逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False
3.1 not、and、or的基本使用
not:把紧跟其后的那个条件结果取反,与紧跟其后的条件不可分割,即取反操作。
and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真,即一假全假。
or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,两个条件都为False的情况下,最终结果才为False,即全假为假。
3.2 优先级not>and>or
如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则),如果是混用,则需要考虑优先级了。
res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3
print(res)
res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3 # False False False
print(res)
四、成员运算符
in:判断某一个对象是否包含于另外一个对象值,是则返回True,字符串、列表、元组、字典、集合都支持成员运算。
print("egon" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
print("e" in "hello egon") # 判断元素是否存在于列表
not in:判断某一个对象是否不包含于另外一个对象值,是则返回True。
五、身份运算符
is:比较的是id,两个对象的id值相等则返回True。
is not:比较的是id,两个对象的id值相等则返回True。
PS:需要强调的是:==双等号比较的是value是否相等,而is比较的是id是否相等。