前置知识点:
1、程序执行的三大核心硬件(***):
cpu 内存 硬盘
正常执行一个程序的要点:
1、将硬盘中的数据读到内存 2、由cpu读内存中的数据进行执行 3、在执行程序的时候,生成的数据,优先存入内存
2、python解释器执行一个py文件过程(***) 如果没有python解释器,py文件单纯就是一个文本文件 所以说,想执行py文件,必须先执行python解释器 1、将python解释器的代码有硬盘读到内存 2、将py文件以普通文本文件的格式由硬盘读到内存 3、python解释器去内存中读取py文件的数据 4、识别python语法,执行相应的操作 ps:任何一个文本编辑器的执行,前两部都一样
字符编码:
字符:世界上一切语言、文字 有必要考虑,图片文件、音频文件、视频文件?
文件的输入和输出是两个过程人类输入的内容都是人类自己可以识别的字符计算机只能识别0101010二进制字符将人类的字符,存入内存和硬盘,要经历一个过程:人类的字符 >>>>>>> (字符编码表) >>>> 计算机二进制0 a1 b01 a10 b00 c11 dASCII码表(美国) 用八位二进制来代表一个英文字符(所有的英文字符+符号一共大概128左右) 0000 0000 1111 1111 最多只能表示255位
八位二进制 = 8 bit 8 bit = 1 bytes 1024bytes = 1KB 1024KB = 1MB 1024MB = 1GB 1024GB = 1TB 1024TB = 1PBGBK(中国) 用2个bytes来代表一个字符,兼容英文字符 0000 0000 0000 0000 1111 1111 1111 1111 最多可以表示65535位shift(小日子过得不错的日本人)fuck(韩国的)万国码(unicode)为了兼容所有的国家的字符,生成unicode 所有的字符都用2bytes 0101 0101 a 0000 0000 0101 0101 a 1、占用存储空间 2、io次数增加,程序运行速度变慢(最致命)在unicode二进制数据存入硬盘的时候,做优化utf-8: utf-8只与unicode有对应关系 unicode transformation format 所有的英文字符用1个bytes表示 所有的中文字符用3个bytes表示现在的计算机: 内存都是:unicode 硬盘都是:utf-8
需要掌握: 1、用户无论输入什么字符,存入内存,unicode都可以兼容 2、硬盘中无论是什么编码的文件,读到内存,都可以兼容unicode数据的传输: 优先以自己的本国字符编码进行传递
必须掌握(******) (内存)unicode二进制字符 >>> 编码(encode) >>> (硬盘)utf-8二进制字符 (硬盘)utf-8二进制字符 >>> 解码(decode) >>> (内存)unicode二进制字符(******)保证不乱码核心: 用什么编码存的数据,就用什么编码取
python2 : 默认的字符编码ascii码(因为当时的unicode还没盛行)python3: 默认的字符编码utf-8文件头: # coding:utf-8 用英文字符,是为了让所有的计算机都可以识别
pycharm默认的字符编码是: utf-8windows操作系统默认字符编码: gbk
深浅拷贝
深拷贝列表的id和原列表不一样,值的id也不一样,改变拷贝列表里的值,原列表不受影响
浅拷贝列表id和原列表不一样,其他和深拷贝相反
import copy # 首先导入copyl1 = [257, 'a', [4, 5, 6]] print(l1)print(id(l1))# print(id(l1[0])) l3 = l1.copy # 浅copy(用的不多)l2 = copy.deepcopy(l1) # 深copy[1, 'a', [4, 5, 6]]l2[2][0] = 4444 print(l2)print(id(l2))print("l1:", l1)print("id_l1:", id(l1))
文件处理
什么是文件
操作系统提供给你操作硬盘的一个工具
为什么要用文件
因为人类和计算机要永久保存数据
怎么用文件
相对路径:a.txt 必须与当前py文件在同一级目录
绝对路径:D:\项目路径\python13期\day07\a.txt
'r' 以只读的方式打开文件(默认) 'w' 以写入的方式打开文件,会覆盖已存在的文件 'x' 如果文件已存在,用次模式打开会引发异常 'a' 以写入模式打开,如果文件存在,在末尾追加写入 'b' 以二进制打开,图片,视频 't' 以文本打开 '+' 可读写模式 'u' 通用换行
# f = open("a.txt") # # print(f.readable()) # 判断当前文件是否可读 # print(f.writable()) # 判断当前文件是否可写 # # # del f # 回收变量资源 # f.close() # 回收操作系统的资源 # with open('a.txt',mode='r')as rf,\ # open('a.txt',mode='w')as wf: # with会自动帮你回收操作系统的资源,无需自己操作 # print(rf.readable()) # print(wf.writable()) # r进行转义 with open(r'D:\项目路径\python13期\day07\a.txt')as f: print(f.read()) # 读取文件
文件打开模式
""" 打开文件的三种模式: r : 1、只读 2、如果文件不存在,会报错 w:(慎用) 1、只写 2、如果文件不存在,则新建一个文件写入数据 3、如果文件内存在数据,会将数据清空,重新写入 a: 1、追加写 2、如果文件内存在数据,会在已有数据的后面追加数据 3、如果文件不存在,则新建一个文件写入数据 处理文件的模式: t b 0 # with open(r'dir\b.txt','r',encoding='gbk')as f: # print(f.readable()) # print(f.read()) # print(f.readline()) # 执行一次,打印一行内容 # print(f.readlines()) # print(f.read()) # print(f.readable()) # print(f.read()) # for i in f: # print(i) # with open(r'dir\b.txt', 'w', encoding='gbk')as f: # # f.write("上海校区第一帅-sean") # f.writelines(["上午没翻车\n",'我很高兴']) # with open(r'dir\aaaaa.txt','a',encoding='gbk')as f: # print(f.writable()) # f.write("\n翻车是不可能的")
来源:https://www.cnblogs.com/zhangjinyi97/p/11815290.html