Python04字符串和编码

Python 字符串与编码

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

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

      # ord(字符):获取字符的整数表示
      print(ord('字'))
    • 运行结果:ezlAAg.png
    • chr(整数):获取整数表示的单个字符

      # chr(整数):获取整数表示对应的字符
      print(chr(171125))
    • 运行结果:
      ez1MRA.png
    • 如果ord(字符串)会怎样?

      # ord()只能对单个字符进行操作
      print(ord("姓名"))
      print(ord('我是字符串哦!'))
    • 运行结果:
      ez3o1s.png
  • 字节(bytes):Python对bytes类型的数据用带b前缀的单引号,或者双引号表示
    • 实例:

      # Python对bytes类型的数据用带b前缀的单引号,或者双引号表示
      t_byte = b'123'
      print(t_byte)
      print(type(t_byte)) # 查看t_byte的数据类型
    • 运行结果:
      ezGDsI.png
    • 如果b'中文'会怎么样?
      ezJkfe.png
    • 字符串转bytes:以Unicode编码的str可以使用encode()转换指定的bytes
    • 使用语法:"字符串".encode(编码集)
    • 实例:

      # 通过字符串.encode(编码集)来获取对应得bytes
      print("我是字符串".encode("UTF-8"))
      print('a'.encode("utf-8"))
    • 运行结果:
      ezYG4O.png
    • 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"))
    • 运行结果:
      eztQzQ.png
  • 字符串长度
    • 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
    • 运行结果:
      ezUpge.png
  • 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里第一个替换
    • 运行结果:
      ezdo38.png

转载于:https://www.cnblogs.com/thloveyl/p/11340774.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值