数据类型总结,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')  地址+模式,(+编码类型)
posted @ 2020-07-15 19:34  Orange-ONE  阅读(62)  评论(0编辑  收藏  举报