字符串和编码

1.Python3的字符串使用Unicode,支持多语言。

2.  ord():获取字符的整数表示                                                  chr():把编码转换为对应的字符

    

Python的char函数 char在python中_ico

   

3.Python的字符串定义类型为str,在内存中以Unicode表示,一个字符对应若干个字节。如果需要在网络上传输,或者保存到磁盘上,就需要转换为以字节为单位的bytes。Python对bytes类型的数据用带b前缀的单引号或双引号表示。

4.以Unicode表示的str通过encode()方法可以编码为指定的bytes。如下图:

Python的char函数 char在python中_Python_02

纯英文的str可以用ASCII编码为bytes,内容是一样的,但含有中文的str无法用ASCII编码,因为中文编码的范围超过了ASCII编码的范围,Python会报错,含有中文的str可以用utf-8编码为bytes。在bytes中,无法显示为ASCII编码的字节,用\x**显示。

5.我们从网络或磁盘上读取的字节流,读到的数据是bytes,可以用decode()将bytes转换为str。

Python的char函数 char在python中_ico_03

当bytes中包含违法解码的字节,decode()会报错,若只是包含一小段无效的字节,可以用“errors='ignore'”忽略无效的字节。

Python的char函数 char在python中_Python的char函数_04

Python的char函数 char在python中_Python的char函数_05

6.len()函数用来计算str的字符数,或者bytes的字节数(一个中文字符经过utf-8编码后通常会占用3个字节,而一个英文字符会占用1个字节),还可以查询list元素的个数。

7.在python编码中,通常在文件开头添加一下两行语句:

#!/usr/bin/python
# -*- coding: utf-8 -*-

第一行注释是告诉Linux/OSX系统,这是一个Python可执行程序,Windows系统会忽略这行注释;

第二行注释是告诉Python解释器,按照UTF-8编码读取源代码(确保源代码中的中文输出不会乱码),

申明UTF-8编码并不意味着.py文件就是UTF-8编码的,还得确保文本编辑器使用UTF-8 without BOM编码。

8.在Python中采用的格式化方式跟C语言是一样的,用%实现。

Python的char函数 char在python中_ico_06

Python的char函数 char在python中_Python的char函数_07

格式化整数和浮点数可以指定是否补0以及整数与小数的位数。

字符串中的%用%%来转义。

9.Python还可以用format()来实现格式化,它会用传入的参数依次替换字符串内的占位符{0},{1},{2}......

Python的char函数 char在python中_Python_08

 

(注:本文仅为个人学习笔记)