day10

£神魔★判官ぃ 2021-10-29 12:08 321阅读 0赞

字符编码

一、计算机基础

  1. cpu:控制程序的运行(从内存中取出文本编辑器的数据读入内存)
  2. 内存:运行程序(经cpu操作后,内存中含有文本编辑器的数据)
  3. 硬盘:存储数据(文本编辑器)

二、文本编辑器存取文件的原理

  1. 打开编辑器就是启动了一个进程,是在内存中的,所有,用编辑器编写的内容也都是存放于内存中的,断电后数据消失。
  2. 要想永久保存,需要点击保存按钮,编辑器把内存的数据刷到了硬盘上。
  3. 我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已。

三、Python解释器执行py文件的原理

  • 第一阶段:Python解释器启动,此时就相当于启动了一个文本编辑器
  • 第二阶段:Python解释器相当于文本编辑器,去打开test.py文件,从硬盘上将test.py的文件内容读入到内存中(小复习:Python的解释性,决定了解释器只关心文件内容,不关心文件后缀名)
  • 第三阶段: Python解释器解释执行刚刚加载到内存中test.py的代码( ps:在该阶段,即真正执行代码时,才会识别Python的语法,执行文件内代码,当执行到name=”egon”时,会开辟内存空间存放字符串”egon”)

四、Python解释器与文本编辑器的异同

  • 相同点:Python解释器是解释执行文件内容的,因而Python解释器具备读py文件的功能,这一点与文本编辑器一样。
  • 不同点:文本编辑器将文件内容读入内存后,是为了显示或者编辑,根本不会理会Python的语法,而Python解释器将文件内容读入内存,是为了执行Python代码、会识别Python的语法。

五、字符编码

1、字符编码

字符编码:二进制和我们所认识的字符之间的相互转换的一个过程。

最早的字符编码为ASCII,只规定了英文字母数字和一些特殊字符与数字的对应关系。

之后中国人规定了自己的标准gb2312编码,日本人规定了Shift_JIS编码,韩国人规定了Euc-kr编码。

2、什么情况会出现乱码

当编码格式不统一的时候就会出现乱码。

文本编辑器支持的是utf8,你输入的是gbk —> 文件的存储

文件存储用了utf8,但是下次打开用了gbk —> 文件的读取

3、乱码的两种情况

中文的文本编辑器只认识中文,然后你输入了日文 —> 乱码 # encode编码

文本编辑器存储了中文(文件),但是你用日本的编辑器打开这个文件 —> 乱码 # decode 解码

4、解决乱码

什么格式存储,就什么格式读取,就不会乱码

文件的三种打开模式

  1. # 'r'模式:只读模式
  2. f = open('test.py', 'r', encoding='utf-8')
  3. print(f.read()) # 读取文件所有内容
  4. print(f.readable()) # 文件是否可读
  5. print(f.readline()) # 一行一行读取文件
  6. print(f.readlines()) # 读取文件所有内容保存为列表
  7. f.close
  8. # 'w'模式:只写模式
  9. f = open('test.py', 'w', encoding='utf-8')
  10. s = 'asdaczca'
  11. f.write(res) # 清空后再写
  12. print(f.writeable()) # 文件是否可写
  13. f.writelines(['aasda', 'adsda'])
  14. f.close()
  15. # ’a'模式:追加模式
  16. f = open('test.py','a', encoding='utf8')
  17. f.write('nick handsome') # 文件末追加
  18. f.close()
  19. # with管理上下文
  20. with open('test.py', 'r', encoding='utf-8') as f:
  21. print(f.read)

转载于:https://www.cnblogs.com/17vv/p/11316141.html

发表评论

表情:
评论列表 (有 0 条评论,321人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA学习day10

    1、继承 继承的定义格式和使用 格式: class 子类 extends 父类 \{\} 2、子类在继承父类的时候,会自动拥有父类的成员 接下来通过一个案例来

    相关 day10

    计算机基础 1. cpu: 控制程序的运行(从内存中取出文本编辑器的数据读入内存) 2. 内存: 运行程序(经cpu操作后,内存中含有文本编辑器的数据) 3. 硬盘

    相关 day10

    字符编码 一、计算机基础 1. cpu:控制程序的运行(从内存中取出文本编辑器的数据读入内存) 2. 内存:运行程序(经cpu操作后,内存中含有文本编辑器的数据

    相关 Java_day10

    十:集合 10.1:数组的升级版.--->集合  =  数组/其他内存结构  +  可变长度  +  一堆方法  +  简单操作。 10.2:集合位于java.

    相关 day10

    上节内容回顾和补充 unicode utf8 gbk utf8 3字节 gbk 2字节 inp=input(" ") inp="10" 如果把字符