第七天

瘦欲@ 提交于 2019-11-27 14:55:04

第七天

字符编码

前置知识点:

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 d​ASCII码表(美国)    用八位二进制来代表一个英文字符(所有的英文字符+符号一共大概128左右)        0000 0000        1111 1111        最多只能表示255位
    八位二进制 = 8 bit    8 bit = 1 bytes    1024bytes = 1KB    1024KB = 1MB    1024MB = 1GB    1024GB = 1TB    1024TB = 1PB​GBK(中国)    用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翻车是不可能的")
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!