python基础学习-day6

一,id、is、==讲解

==:判断左右两边的数值是否相同

id:内存地址(虚拟,非真)

is:比较左右两边的内存地址是否相同

*** 内存地址相同,值一定相等;值相等,内存地址不一定相等

x = 100
y = 100
print(id(x))
print(id(y))
print(x is y)
View Code

二,代码块以及缓存机制

一个文件、函数、类都是一个代码块,交互命令中一行就是一个代码块

由于在一个代码块中,可能会存在内容相同的对象(变量),系统如果每次都在内存中开创新的内存地址太浪费,因此诞生了缓存机制

缓存机制针对的对象:int、str(大部分)、bool、空元组

缓存机制(作用)

  1,节省内存空间

  2,提升性能

缓存机制分类:

  1,驻留机制:同一个代码块中

  2,小数据池:不同的代码块中

三,基础数据类型补充

 1,各个数据类型之间的转化(int  str  bool  list  tuple  dic  set)

  1,int<---->str(数字与字符串之间的相互转化)

    转化int为str类型:用str数据类型把数字“包起来”  

x = 1
print(str(x))
数字转化为字符串

    转化str为int类型:用int数据类型把字符串“包起来”【仅限字符串本身就是数字,非数字不可以转化】

x = '123'
print(int(x))
字符串转化为数字

  2,bool可以与所有数据类型转化(所有为空的数据类型转化为bool都是False,反之则为true)

  #  0 ‘’ [] {} () None  ------>False

lis = []
print(bool(lis))  # 显示结果为False
任意数据类型转化为bool

  3,str<--->list

  #  字符串转化为列表的方法是:通过split分割

x = '123 abc 啦啦啦'
lis = x.split(" ")
print(lis)
str转化为list

列表转化为字符串的方法是:通过join拼接【如果列表中存在数字是不可以拼接的】

lis=['abc','123','台标']
x =' '.join(lis)
print(x)
list转化为str

  4,str<--->tuple

  #  字符串转化为元组的方法是:partition

  #  partition:通过指定分隔符,把字符串中分隔符之前的部分,分隔符本身,以及之后的部分变成元组中的内容。如果分隔符不存在,返回整个字符串以及新增两个空字符

x = '123 abc 哈哈'
tu1 = x.partition('分隔符')
print(tu1)
str转化为tuple

  #  元组转化为字符串的方法是:join【元组中不能存在数字】

tu1 = ('123','abc','阿斯弗')
x = ' '.join(tu1)
print(x)
tuple转化为str

  5,list<--->tuple

直接转化即可(想转化为什么就用什么数据类型把变量“包起来”)

tu1 = ('123','abc','阿斯弗')
print(list(tu1))

lis = ['123', 'abc', '阿斯弗']
print(tuple(lis))
互相转化

  6,dict--->list【注意这里是单项转化

直接转化即可(用list把字典的变量名“包起来”)

dic = {'name':'Bob',
       'age':18,
       'hobby':'travel'
       }
print(list(dic))
dict转化为list

2,元组的补充说明:如果元组中只有单个元素,并且没有“,”分割,那么他的数据类型为元素本身的数据类型

tu1 = (1234)
tu2 = ('qwe')
print(type(tu1))  # 显示为数字类型
print(type(tu2))  # 显示为字符串类型
View Code

3,字典的补充方法(fromkeys)

#  fromkeys可以为多个“键”设置值(值是不可变的)

dic = dict.fromkeys(['name','age','hobby'],'太白')
print(dic)
View Code

#  这里存在一个问题,就是附加的值必须是不可变类型,因为通过这个方法设定的值在内存中的地址是同一个

dic = dict.fromkeys(['name','age','hobby'],[])
dic['name'] = 'Box'
dic['age'] = 23
dic['hobby'] = 'travel'
print(dic)  # 发现三个key对应的值都是最后一次赋予的值
View Code

猜你喜欢

转载自www.cnblogs.com/dpStarrysky/p/10489505.html