Python学习笔记(四)——编码和字符串

一、编码

1、编码类别:

(1)ASCII码:127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号

(2)GB2312码:中国制定的用于加入中文汉字的编码

(3)Unicode:防止由于各种编码出现冲突而导致的乱码问题。最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)

(4)“可变长编码”UTF-8:Unicode乱码问题解决,然而是以存储为代价的。使用可变长编码可以一定程度上解决存储问题,

image

2、计算机系统通用的字符编码工作方式

(1)在计算机内存中,统一使用Unicode编码

(2)当需要保存到硬盘或者需要传输的时候,转换为UTF-8编码。

(3)用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

(4)浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器

imageimage

二、字符串

1、Python的字符串

     在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言

2、ord(),chr()

image

ord():获取字符的整数表示

chr():把编码转换为对应的字符

3、str字节数

(1)由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。

(2)如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytesPython对bytes类型的数据用带b前缀的单引号或双引号表示:

x = b'CXW'

(3)以Unicode表示的str通过encode()方法可以编码为指定的bytes

image

(4)从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法

image

(5)要计算str包含多少个字符,可以用len()函数

image

(6)由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

      必须并且要确保文本编辑器正在使用UTF-8 without BOM编码

image

4、格式化

(1)格式化方法’% ‘

image

>>> 'Hello, %s' % 'world'
print("hello %s %s " % (x,x))

(2)如果你不太确定应该用什么%s永远起作用,它会把任何数据类型转换为字符串

(3)%%显示为%

原文地址:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/6149176.html