数据类型的补充(基础篇之外的知识)

  • 数据类型的补充

    • str

      • 首字母大写,其余的小写:

        # s = 'tai1 BAi'
        # print(s.capitalize())
        
      • 大小字母反转

        # s = 'tai1 BAi'
        # print(s.swapcase())
        
      • 非字母之间隔开的,首字母都大写,其余的小写

        # s = 'tai1 BAi'
        # print(s.title())
        
      • 内同居中,总长度,空白处填充

        # s = 'tai1 BAi'
        # print(s1.center(20))
        # print(s1.center(20,'*'))
        
    • 元组:元组中如果只有一个元素且没有逗号,那么该元素和数据类型一致

    • 列表:循环一个列表时,最好不要改变列表的大小,这样会影响最终的结果

      # 列表升序   降序   反转
      # list = [1,2,3,1]
      # list.sort()
      # # list.sort(reverse=True)
      # list.reverse()
      # print(list)
      
      
    • 字典 update 有则改之,无则加之

      # dic = {'name': '魔童', 'age': 18}
      # dic.update(name='魔童1号',hight='175')
      # # print(dic)
      
      # dic = {'name': '魔童', 'age': 18}
      # dic1 = {'name':'魔童1号','hobby':'美女'}
      # dic.update(dic1)
      
      # fromkeys
      # dic = dict.fromkeys('abc','魔童')
      # dic = dict.fromkeys([1,2,3],[])             # {1: [], 2: [], 3: []}
      # dic[1].append(66)							# # {1: [66], 2: [66], 3: [66]}
      # print(dic)
      
  • 数据类型的转换

    • 其他的之前讲过,下面的是今天讲的
    # str - bytes
    s = '中国'
    b = s.encode('utf-8')  # 编码        #  b'\xe4\xb8\xad\xe5\x9b\xbd'
    # print(a)
    print(b)
    
    # bytes - str   
    b = b'\xe4\xb8\xad\xe5\x9b\xbd'  # 解码
    s = b.decode('utf-8')
    print(s)
    

    转化成bool值为False的数据类型有:
    '', 0, (), {}, [], set(), None

  • 数据类型的分类(了解)

  • 编码的进阶

    • 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 :'中国'

      ​ 内存中编码方式:Unicode

      ​ 表现形式:'中国'

      ​ bytes:

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

      ​ 表现形式:b'hello'

以上总结:

  • 数据类型的补充:list(sort reverse 列表的加 * 循环问题) dict (updat 循环)

  • 编码的进阶:bytes类型的存在意义 str - bytes(Unicode - 非Unicode)

    gbk - utf-8 **** 要转化为Unicode再去转换

posted @ 2020-10-07 23:16  太白之魔童降世  阅读(110)  评论(0编辑  收藏  举报