Pyhton 基础数据类型 V (补充)

1.今日内容

  1. 基础数据类型的补充
  2. 数据类型之间的转换
  3. 常见的坑
  4. 编码的进阶

2.昨日回顾

  1. id is ==
    • id:获取对象的内存地址; is:内存地址是否相同;==:数据是否相同
  2. 代码块:一个文件,交互式命令一行就是一个代码块
  3. 代码块的缓存机制
    • 优点:提升性能,节省空间
    • 同一个代码块下的缓存机制(字符串驻留机制)
      • 所有的数字,bool,几乎所有的字符串
    • 不同代码块下的缓存机制(小数据池)
      • -5~256 int,bool,满足一定规则的字符串
  4. 集合:作用:列表去重,关系测试
  5. 深浅copy:
    • 浅copy:在内存中开辟一个新的空间存放copy的对象(列表,字典),但是里面的所有元素与被copy对象里面的对象共用一个
    • 深copy

3.具体内容

  1. 数据类型的补充

    #str
    #首字母大写:
    s = 'xiaoshuo'
    s1 = s.capitalize()
    print(s1)
    
    #每个单词首字母大写
    s1 = s.title()
    print(s1)
    
    #大小写互换
    s1 = s.swapcase()
    print()
    
    #统计出现的次数
    s1 = s.count('o')
    print(s1)
    
    #查找
    print(s.find('o')) #find 查找不到返回-1
    print(s.index('o'))#index 查找不到就报错
    
    
    #list
    li = list('8765432') #迭代定义的方式
    print(li)
    
    #统计
    print(li.count('8'))
    
    #查看索引
    print(li.index('8'))
    
    #反转
    li.reverse()
    print(li)
    
    #排序
    li.sort()   #升序
    li.sort(reverse = True)  #降序
    print(li)
    
    
    #tuple
    tu = tuple('123456') #迭代定义元组
    
    #统计
    print(tu.count('1'))
    
    #查找索引
    print(tu.index('1'))
    
    
    #dict
    dic = dict(k1 = 1,k2 = 2, k3 = 3)
    print(dic)
    
    #随机删除:
    dic.popitem()
    python3.6版本之后,默认删除最后个键值对
    python3.5版本以前,随机删除
    
    #批量创建字典:
    dic = {}
    dic1 = dic.fromkeys('qwert',[1234])
    #第一个参数可迭代对象
    #第二个参数时每个键对应的值---用的都是痛一个内存地址
    
    
    #set
    s = set('12345')  #迭代定义方式
    print(s)
  2. 基础数据类型的转换

    #数据类型转换:
     #字符串转化数字的时候必须都是十进制数
      #字符串转列表:
         print(s.split())
      #列表转换字符串
         print(''.join(li))
      #除字典外,数据类型之间可以直接互相转换
    
    
    #基础数据类型分类:
     str;int;bool;tuple;list;dict;set
    #有序
     str;int;bool;tuple;list
    #无序
     dict;set
    #可变
     list;dict;set
    #不可变
     str;int;boo;tuple
    #访问方式
     #直接访问
         int;bool;set
      #顺序访问
         list;tuple;set
      #键访问
         dict    
  3. 常见的坑

    1. 列表
      • 按照索引循环删除列表元素的时候,要倒序删除,否则得到的结果不是你想要的
    2. 字典
      • 字典在for循环的时候不能改变字典的大小
      • 如果要循环删除数据,需要定义一个列表,在循环列表对字典内的元素进行删除
  4. 编码的进阶

    encode()  #编码
    decode()  #解码
    #不同的密码本之间不能相互识别
    #数据在内存中全部是以Unicode编码的,但是当你的数据用于网络传输或者存储到硬盘中,必须是以非Unicode编码的(utf-8,gbk等)
    #用什么编码集编码,就用什么编码集解码
    

猜你喜欢

转载自www.cnblogs.com/xiaohei-chen/p/11879659.html