一、字符编码
1、定义
人类能识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的信息交流,一定需要一个媒介,进行两种标识符的转化(两种标识符的对应关系)
对应关系形成的结构称为编码表
10 -> 00010000 'a' - > 10001000 '好' -> 10101010
2、了解知识点:编码表的发展史
①ascii(ASCII):字母数字英文符号和计算机01标识符的对应关系
②中国:研究汉字与计算机01标识符的对应关系
日本:Shift_JIS
棒子:Euc-kr
3、制造一个可以由万国符与计算机01标识符的对应关系的编码表
编码表:unicode
①python2按ascii来读,没有按照万国编码,原因是,python2的诞生早于万国编码。
②python3按UTF-8来读,采用万国编码来解释文本内容。
4、unicode与UTF-8之间的关系(重点内容******)
①unicode用2个字节来存储汉字,用2个字节存储字母。所以相比较,unicode占用内存空间较多,但是读取效率极高 UTF-8用3-6个字节存储汉字,用1个字节存储字母。占用空间较少,但是读取效率低 ②unicode与UTF-8采用的是一张unicode编码表,UTF-8是编码表的体现方式,通过变长存储数据。 (变长的优点:大量数据都是以英文存在,所以UTF-8空间更小,传输速度更快)
二,字符与字节
1、三种字符串
①unicode字符串s1=u‘’
s1 = u'abc你好\n不好' print(s1) # 结果为 abc你好 不好
②字节字符串s2=b‘’
s2 = b'abc123\xb7\xb7' print(s2) # 结果为 b'abc123\xb7\xb7'
③原义字符串:不对字符串内做任何操作s3=r‘’
s3 = r'abc你好\n不好' print(s3) # 结果为 abc你好\n不好
2、编码操作:编码与解码(重点*****)
①编码:将u字符串编码成b字符串
print(u'你好'.encode('utf-8')) # 结果为 b'\xe4\xbd\xa0\xe5\xa5\xbd'
②解码:将b字符串解码成u字符串
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')) # 结果为 你好
3、字符与ASCII之间的转化:
res = ord('A') print(res) # 结果为65 res = chr(65) print(res) # 结果为A
ASCII:DBCS双字节存储可以存放中文等一些文字与字符,可以完成字符与整数(ASCII表中整数)的转化。
三、文件操作
1、文件:硬盘中一块存储空间
2、文件操作:根据文件名来操作硬盘的那块存储空间,操作方式:read,write
3、文件操作的三要素:文件源、操作模式、编码
4、文件操作的三步骤(重点*****)
①打开文件 变量名=文件空间 f = open('a.txt', 'r', encoding='utf-8') ②操作文件 date=f.read() 是将所有内容读取出来,如果设置读取长度,则按设置长度读取 一次读一行:line=f.readline() 按行一次性全部读出:lines=f.readlines() 逐步一行一行读取(for循环) f = open('a.txt', 'r', encoding='utf-8') l=[] for line in f l.append(line) print(l) s=set() for line in f s.append(line) print(s)
③关闭文件 f.close() 释放操作系统对文件的持有,变量f还被应用程序持有 print(f)