2019.8.7学习内容及笔记

总结

字符编码

回顾计算机基础:

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

文本编辑器

计算机只认识 0和1

文本编辑器的作用:读写数据,保存数据

Python解释器

python解释器具有文本编辑的功能

首先计算机只认识0和1,当用一个二进制编写时:如

01010100111010-->a = 1,在python解释器没有运行的时候就是普通的5个字符

定义变量就要开辟内存空间存放变量,因为内存只认识0和1,所以这一串字符要转换后才能被人认识

字符编码

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

早起是用ascii码,因为各国所用的编程语言不一样,为了让人都能使用不同国家的语言进行编辑,所以需要一种万国语言(Unicode)

什么情况下会出现乱码

格式不统一的时候会出现乱码

如:文本编辑器支持的是utf-8,你输入的是gbk-->文件的存储(乱码)

​ 文本存储用了utf-8,但是下一次打开用了gbk-->文件的读取(乱码)

结论:当你打开所使用的文本编辑器,但是输入或者打开的文本不与之匹配,那么就会出现乱码

解决乱码

(牢记):什么格式存储,就什么格式读取,就不会乱码

补充:windows电脑的记事本默认为gbk编码,除此之外其它的软件默认编码为utf-8

python解释器运行代码流程

  1. 启动python解释器(相当于文本编辑器)
  2. 打开文件,显示这个字符并检出语法(涉及字符编码,a = 1只是一个很普通的字符)
  3. 解释字符(涉及字符编码,再去内存空间,生产一个a = 1 的变量)

python2和python3区别:

python2用的是ascii编码,python3默认是utf-8读取字符

coding:gbk 会告诉python3解释器用gbk编码读取字符

python3了解

python3用unicode进行字符编码

假设终端的默认编码是gbk,认识unicode 编码的变量,不会乱码

假设终端的默认编码是utf-8,认识unicode编码的变量,不会乱码

python2了解

python2是通过unicode+指定的coding编码(str类型)

终端是一个文本编辑器,会有默认编码

假设终端的默认编码是gbk,认识gbk编码的变量,不会乱码

假设终端的默认编码是utf-8,不认识gbk编码的变量,就会有乱码

文件的三种打开模式

  1. r : read,只能读不能写,文件不存在时会报错
 #文件内容拿出来,读一行少一行
print(f.read()) 读取文件内所有内容
循环:
for i in f:
    print(i)
f=open('price.txt','r',encoding='utf-8')
print(f.readable()) #判断是否可读  #true
f.close()
  1. w: write,只能写不能读,清空后再写入
f=open('price.txt','w',encoding='utf-8')
f.write('nick handsome')
f.close
  1. a :append 追加,在文件末追加
f=open('price.txt','a',encoding='utf-8')
f.write('chen')
f.close

with管理文件上下文

文本模式 t

f = open('test.py','rt')
data= f.read()
print(data)

进制模式b (一般用于对图片的处理)

f = open('python2和3的字符编码的区别.png', 'rb')
data=f.read()
print(data)

补充:with open(文件内容如:'test.txt', 'rt', encoding='utf8')as fr1

with open 与 open的区别:

  1. with open可以一次打开多个文件,可以在格式后面继续添加要打开的文件作为fr2...,以逗号分开,以  表示换行,这样可以做到只用一个open就能打开多个文件
  2. with open 是自动关闭文件,不要想open 那样还以使用 f.close来关闭文件

猜你喜欢

转载自www.cnblogs.com/chmily/p/11317981.html
今日推荐