python入门——可变不可变类型、逻辑运算符

什么叫做可变与不可变类型呢

  可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的

  不可变类型:值改变,id也变了,证明是产生新的值,压根没有改变原值,证明原值是不可以被修改的

那么基本类型中哪些是可变类型哪些是不可变类型呢,让我们来一一验证

  首先是int,当运行完后发现他的两个id发生了改变,那么int就是不可变类型。

 

x=10
print(id(x))
x=11 # 产生新值
print(id(x))

 

  接着是float,当运行完后发现他的两个id发生了改变,那么float就是不可变类型。

=3.1
print(id(x))
x=3.2
print(id(x))

  接着是str,当运行完后发现他的两个id发生了改变,那么str就是不可变类型。

x="abc"
print(id(x))
x='gggg'
print(id(x))

  这里说下下,int、float、str被设计成了不可分割的整体,不能够被改变

 

  下面是list类型我们发现当他的值改变时,他的列表list的id没发生改变,所以list可变类型

l=['aaa','bbb','ccc']
print(id(l))
l[0]='AAA'
print(l)
print(id(l))

 

  dict也是同理,所以dict可变类型。定义:{}内用逗号分隔开多key:value,其中value可以是任意类型,但是key必须是不可变类型

dic={'k1':111,'k2':222}
print(id(dic))
dic['k1']=3333333333
# print(dic)
print(id(dic))

  最后是bool,他只有true和false,你不可能把它改变,所以bool也是不可变类型。

条件

  条件分为显式布尔值和隐式布尔值。显式布尔值就像比较运算符,他判断后会给你一个布尔值,当然true、false也是。

age = 18
print(age > 16)  # 条件判断之后会得到一个布尔值

is_beautiful=True
print(is_beautiful)

 

  而隐式布尔值,他的所有的值都可以当成条件去用。其中0、None、空(空字符串、空列表、空字典)=》代表的布尔值为False,其余都为

逻辑运算符

  逻辑运算符就是not、and、or。

  not:就是把紧跟其后的那个条件结果取反。ps:not与紧跟其后的那个条件是一个不可分割的整体

print(not 16 > 13)
print(not True)
print(not False)

  and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真

print(True and 10 > 3)

  or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,两个条件都为False的情况下,最终结果才为False

print(3 > 2 or 0)

  而在优先级上not>and>or

 

posted @ 2020-03-07 14:03    阅读(208)  评论(0编辑  收藏  举报