Python04字符串和编码

一曲冷凌霜 提交于 2019-11-27 03:10:12

Python 字符串与编码

PS:这方面的知识后面再深入理解,上述三种编码是目前较广泛的!

  • 字符串
    • Python3中,字符串以Unicode编码(支持多语言)
    • ord(字符)获取单个字符的整数表示

      # ord(字符):获取字符的整数表示 print(ord('字'))
    • 运行结果:

    • chr(整数):获取整数表示的单个字符

      # chr(整数):获取整数表示对应的字符 print(chr(171125))
    • 运行结果:

    • 如果ord(字符串)会怎样?

      # ord()只能对单个字符进行操作 print(ord("姓名")) print(ord('我是字符串哦!'))
    • 运行结果:

  • 字节(bytes):Python对bytes类型的数据用带b前缀的单引号,或者双引号表示
    • 实例:

      # Python对bytes类型的数据用带b前缀的单引号,或者双引号表示 t_byte = b'123' print(t_byte) print(type(t_byte)) # 查看t_byte的数据类型
    • 运行结果:

    • 如果b'中文'会怎么样?

    • 字符串转bytes:以Unicode编码的str可以使用encode()转换指定的bytes
    • 使用语法:"字符串".encode(编码集)
    • 实例:

      # 通过字符串.encode(编码集)来获取对应得bytes print("我是字符串".encode("UTF-8")) print('a'.encode("utf-8"))
    • 运行结果:

    • bytes转str:如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str(字符串),就需要用decode()方法
    • 使用语法: bytes.decode(编码集)
    • 实例:

      # decode() 获取bytes对应的字符串 print(b'abc'.decode("Ascii")) print(b'\xe6\x88\x91\xe6\x98\xaf\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'.decode("utf-8"))
    • 运行结果:

  • 字符串长度
    • len(字符串):获取字符串长度
    • 实例:
    # len()方法获取字符串长度(字符数) print(len("你好呀!")) # 输出 4 # len()方法获取bytes的字节数 print(len(b'abc')) # 输出 3 print(len(b'\xe6\x88\x91\xe6\x98\xaf\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2')) # 输出15
    • 运行结果:

  • Python文件头部书写方法:(建议书写)
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行: #!/usr/bin/env python3 # -*- coding: utf-8 -*- 第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释; 第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
  • 格式化字符串
    • 使用%来格式化字符串,%d:整数,%s:字符串,%f:浮点数,%x:十六进制
    • 使用语法:"你好,%s"%("世界")
    • 实例:

      # 格式化字符串 % print("你好,%s"%("世界")) # 输出 你好,世界
    • format() 格式化字符串
    • 使用语法:字符串.format()
    • 实例:
     # 格式化字符串 format()  print("你好,{s}".format(s="世界"))  # 相当于使用了变量并重新赋值  print("你好,{0}".format("Python")) # 相当于按顺序替换,{0}与format里第一个替换
    • 运行结果:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!