数据类型总结,and字符编码和文件处理
数据类型总结
按存储空间的占用分(从低到高)
数字
字符串
集合:无序,即无序存索引相关信息
元组:有序,需要存索引相关信息,不可变
列表:有序,需要存索引相关信息,可变,需要处理数据的增删改
字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改
按存值个数区分
标量/原子类型 | 数字,字符串 |
---|---|
容器类型 | 列表,元组,字典,集合 |
按可变不可变区分
可变 | 列表,字典 |
---|---|
不可变 | 数字,字符串,元组 |
按访问顺序区分
直接访问 | 数字,字符串 |
---|---|
顺序访问(序列类型) | 字符串,列表,元组 |
key值访问(映射类型) | 字典 |
今日内容
字符编码***
- 乱码问题:
1、存的时候乱了:采用的字符编码表无法识别输入的字符
存的时候就已经乱了,是无法补救的,取的时候一定也乱了
解决方法:存入硬盘的编码格式应该用utf-8格式
2、存的时候没有乱码:采用的字符编码表可以识别输入的字符
但是取的时候乱码了:采用的字符编码表与当初存的时候用的不是同一张表
解决方法:存的时候用什么编码,取的时候一定要用同样的编码格式
与运行python程序有关的乱码问题:
1、保证运行python程序的前两个阶段不乱码
在python文件的开头加一行:
#coding:文件存的时候用的编码格式
2.python3 中不用注意,在python2中需要注意在字符串的前面加上u 表示用utf-8
文件处理
-
什么是文件
文件是操作系统提供给用户/应用程序操作硬盘的一个虚拟单位
-
为何要用文件
存储硬盘,必须要使用文件。
-
如何使用文件
open(文件路径,打开模式) 打开
应用程序/用户 文件对象/文件句柄 =============》遥控器 操作系统 打开文件 ===================》空调 硬件 硬盘 ==========》
绝对路径前面加上r’…’
D:\python38\Doc\python383
C:\a\b\c\new.txt
file_path=r'C:\a\b\c\new.txt'
file_path=r'/a/b/c/d.txt'
相对路径
在当前文件往下找。
c\d.txt
d.txt
# 示范:
r"D:\python3\liu\a.txt"
f = open(r"liu\a.txt", mode='rt',encoding='utf-8')
res=f.read()
print(res)
f.close()
f = open(r"liu\a.txt", mode='rb')
res=f.read()
print(res,type(res))
x=res.decode('utf-8')
print(x)
f.close()
- .encode(‘编码格式’) 转换编码格式
x='中国'
res=x.encode('gbk')
print(res)
res1=x.encode('utf-8')
print(res1) 转换完成以后类型是 bytes 类型
#unicode格式的数字========>其他编码格式的数字
#bytes 可以理解为一种硬盘的原生格式 (相当于二进制)
- .decode
x='中国'
res=x.encode('gbk')
print(res)
res1=x.encode('utf-8')
print(res1) 转换完成以后类型是 bytes 类型
#其他编码格式的数字========>unicode格式的数字
#
- .open(打开)
f=open(r"liu\a.txt", mode='rb') 地址+模式,(+编码类型)
努力学习!