返回顶部

数据类型的补充 day07

  1. 数据类型补充

    • str
    #str 补充方法练习一遍就行
    # s = 'HolTing'
    # #capitalize 首字母大写,其余小写
    # print(s.capitalize())
    # #swapcase  大小写翻转
    # print(s.swapcase())
    # #title 每个单词的首字母大写
    # msg= 'taibai say3hi'
    # print(msg.title())
    #center 居中
    s1 = 'holting'
    # print(s1.center(20))
    # print(s1.center(20,'*'))
    #find 通过元素找索引,找到第一个就返回,找不到返回-1
    #index 通过元素找索引,找到第一个就返回,找不到 报错
    # print(s1.find('a'))
    # print(s1.find('h'))
    # print(s1.index('O'))
    
    • 元祖 tuple

      #元祖中只有一个元素并且没有逗号,那它不是元祖。它与该数据类型一致
      # tu1 = (2,3,4)
      # tu1 = (2)
      # tu1 = ('太白')
      # tu1 = ([1,2,3])
      # tu1 = (1,)
      # print(tu1,type(tu1))
      # tu = (1,2,3,3,3,2,2,3,
      #count 计数
      # tuple1 = (1,2,3,4,)
      # print(tuple1.count(1))
      # # index
      # print(tuple1.index(2))
      
    • 列表 list

      #l1 = ['太白', '123', '女神', '大壮']
      #count pass
      #index
      #print(l1.index('大壮'))
      #sort
      #l1 = [5,4,3,7,8,6,1,0]
      # l1.sort()#默认从大到小
      # print(l1)
      # l1.sort(reverse=True)
      # print(l1)
      # l1.reverse()#反转
      # print(l1)
      #列表可以相加
      # l1 = [1,2,3]
      # l2 =[1,2,3,4,'holting']
      # print(l1 + l2)
      #
      # #列表与数字相乘
      # l1 = [1, 'daf', 3]
      # l2 = l1*3
      # print(l2)
      #l1 = [11, 22, 33, 44, 55]
      # 索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)。
      # del l1[1::2]
      # print(l1)
      #倒序法删除元素
      # for i in range(len(l1)-1,-1,-1):
      #     if i %2 ==1:
      #         l1.pop(i)
      # print(l1)
      
      # 思维置换
      # l1 = [11, 22, 33, 44, 55]
      # new_l1 = []
      # for index in range(len(l1)):
      #     if index % 2 ==0:
      #         new_l1.append(l1[index])
      # # print(new_l1)
      # l1 = new_l1
      # print(l1)
      # 循环一个列表的时,最好不要改变列表的大小,这样会影响你的最终的结果。
      
      
    • 字典

      #字典的补充
      #update
      #dic = {'name': '太白', 'age': 18}
      # dic.update(hobby='运动',hight='175')
      # dic.update(name='holting')
      # dic.update([(1,'a'),(2,'b'),(3,'c'),(4,'d')])
      # print(dic)
      # dic1 = {"name":"jin","age":18,"sex":"male"}
      # dic2 = {"name":"alex","weight":75}
      # dic1.update(dic2)#更新,有则覆盖,无则添加
      # print(dic1)
      # print(dic2)
      
      #fromkeys 坑:值共有一个
      #dic = dict.fromkeys('abc', 100)
      #dic = dict.fromkeys([1, 2, 3], 'alex')
      #print(dic)
      #ic = dict.fromkeys([1,2,3],[])
      # dic[1].append(666)
      # print(dic)
      dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
      # 将字典中键含有'k'元素的键值对删除。
      # for i in list(dic.keys()):# ['k1', 'k2', 'k3','age']
      #     if "k" in i:
      #         dic.pop(i)
      # print(dic)
      
      # for key in dic:
      #     if 'k' in key:
      #         dic.pop(key)
      # print(dic)
      #循环一个字典时,如果改变这个字典的大小,就会报错。
      # l1 = []
      # for key in dic:
      #     if 'k' in key:
      #         l1.append(key)
      # print(l1)
      # for i in l1:
      #     dic.pop(i)
      # print(dic)
      
      
      1. 数据类型的转换
      # ,0 ,'' ,( ),[ ],set(),None  转换成bool 值为False
      

      数据类型的分类(了解)

  2. 编码的进阶

    • ASCII码:包含英文字母,数字,特殊字符与01010101对应关系。

      a 01000001 一个字符一个字节表示。

    • GBK:只包含本国文字(以及英文字母,数字,特殊字符)与0101010对应关系。

      a 01000001 ascii码中的字符:一个字符一个字节表示。

      中 01001001 01000010 中文:一个字符两个字节表示。

    • Unicode包含全世界所有的文字与二进制0101001的对应关系。

      a 01000001 01000010 01000011 00000001

      b 01000001 01000010 01100011 00000001

      中 01001001 01000010 01100011 00000001

    • UTF-8:包含全世界所有的文字与二进制0101001的对应关系(最少用8位一个字节表示一个字符)。

      a 01000001 ascii码中的字符:一个字符一个字节表示。

      To 01000001 01000010 (欧洲文字:葡萄牙,西班牙等)一个字符两个字节表示。

      中 01001001 01000010 01100011 亚洲文字;一个字符三个字节表示。

    1. 不同的密码本之间能否互相识别?不能。

    2. 数据在内存中全部是以Unicode 编码的,但是当你的数据用于网络传输或存储到硬盘中,必须以非Unicode(utf-8,gbk等等)

      英文:

      str :'hello'

      内存中的编码方式:Unicode

      表现形式:'hello'

      bytes:

      内存中的编码方式:非Unicode

      表现形式:b'hello'

    ​ 中文:

    str:

    表现形式:'中国'

    bytes:

    内存中的编码方式: 非Unicode#utf-8

    表现形式:b'\xe4\xb8\xad\xe5\x9b\xbd'

    #str -->bytes
    # s ='中国'
    # b = s.encode('utf-8')#编码
    # print(b,type(b))#b'\xe4\xb8\xad\xe5\x9b\xbd' <class 'bytes'>
    # b = s.encode('gbk')#编码
    # bytes --> str
    # b =b'\xe4\xb8\xad\xe5\x9b\xbd'
    # s = b.decode('utf-8')#解码
    # print(s)
    
    #gbk -->utf-8
    # b1 = b'\xd6\xd0\xb9\xfa'
    # s = b1.decode('gbk')
    # print(s)
    # b2 = s.encode('utf-8')
    # print(b2)#b'\xe4\xb8\xad\xe5\x9b\xbd'
    
posted @ 2020-06-27 19:10  holting  阅读(73)  评论(0编辑  收藏  举报