今日内容:

  • 1.字符编码

  • 2.字符与字节

  • 3.文件操作

一、字符编码

了解:
cpu:将数据渲染给用户
内存:临时存放数据,断电消失
硬盘:永久存放数据,断电后不消失

1.1 什么是编码?

人类能够识别的是字符等高级标识符,电脑只能识别0,1组成的标识符,要完成人与机器之间的交互,一定要一个媒介进行转化

1.2 文件出现乱码的原因

存数据与读数据采用的编码表不一致

1.3 软件打开文件读取数据的流程

1.打开文件
2.往计算机发送一个打开文件的指令,来打开文件
3.读取数据渲染给用户

1.4 Python解释器打开py文件

1.打开软件(Python解释器)
2.往计算机发送一个打开文件的指令,来打开文件
3.逐行解释打开的文件内容(若存取编码不一致,则无法正常解释,程序崩溃),将执行结果展示给用户 解释失败的原因:
py2默认按ASCII来解释文件内容
py3默认按utf-8来解释文件内容

1.5 设置默认编码

在py文件头:
# encoding:编码表 ( # coding:编码表 ) 功能:告诉Python解释器按照什么编码来解释内容

1.6 编码解码

    s1 = u'123' # unicode 字符串,默认字符串
s2 = b'123' # 字节字符串
s3 = r'12\n3' # 原义字符串:不对字符串做任何操作
编码与解码:
    s ='154呵呵'
s1 = bytes(s, encoding='utf-8') # 编码
print(s1)
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')) # 解码
编码表的发展史
1.ASCII
字母、数字、英文符号与计算机0,1标识符的对应关系 2.各国语言的编码表
中国:GB2312、GBK、GB18030 先后出现的汉字编码表
日本:shift_JIS
韩国:Euc_kr 3.通用的编码表
制造一个可以完成万国字符与计算机0,1标识符的对应关系的编码表
编码表:Unicode表
py2:ASCII,没有用Unicode,因为py2出生的比Unicode还早
py3:utf-8,也就是可变长的Unicode表,本质是一样的 思考:Unicode与UTF-8是什么关系?
二者关系:
unicode与utf-8采用的是一张unicode编码表,utf-8是unicode编码表体现方式,变长存储数据
Unicode:用2个字节来存储汉字,用2个字节来存储英文字母,占有空间较多,读取效率极高
UTF-8:用3-6个字节来存储汉字,用1个字节来存储英文字母,占有空间较少,读取效率低 总结:内存都是按Unicode存储数据,硬盘和CPU采用UTF-8来存取数据

二.字符与字节

2.1 字符

通常意义中使用的记号,抽象意义上的符号。像‘1’,‘人’,‘a’等
ASCII码表中,标点、符号、数字、大小写字母都占一个字节
unicode表中,所有字符都占两个字节

2.2 字节(Byte)

1个字节表示的是 8 位二进制(0,1)

三.文件操作

详解文件操作见 [ Python 入门基础 7 --文件操作 ] (https://www.cnblogs.com/xt12321/p/10609499.html)
文件:硬盘中一块存储空间(虚拟的文件)
文件操作:根据文件名来操作硬盘的那块存储空间,读 read 写 write

3.1 使用文件的三个步骤

1.打开文件
变量名 = 文件空间
文件路径 操作模式(读/写)编码 f = open('a.txt','r',encoding = 'utf-8') 2.操作文件
data = f.read(3) # 将所有的内容读取出来,如果设置读取长度,按规定长度读取数据
print(data)
# f.readline() # 一次读取一行内容
# f.readlines() # 一次性全部读取出来 3.关闭文件
f.colse() # 释放操作系统对文件的持有,变量f还被应用程序持有

3.2 文件操作模式

主模式:r:读 、 w:写 、a:追加
从模式:b:按字节操作 、 t:按字符操作 、 +:可读可写
了解:x:异常写 、 U:被遗弃了 # 基础写
# 文件不存在:会新建文件,再操作文件
# 文件存在:先清空文件,再操作文件
w = open('b.txt', 'w', encoding='utf-8')
w.write('4567')
w.close

Python 入门基础6 --字符编码、文件操作1的更多相关文章

  1. python开发基础之字符编码、文件处理和函数基础

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

  2. python字符编码-文件操作

    字符编码 字符编码历史及发展 为什么有字符编码 ''' 原因:人们想要将数据存入计算机 计算机的能存储的信息都是二进制的数据 内存是基于电工作的,而电信号只有高低频两种,就用01来表示高低电频,所以计 ...

  3. python入门(八):文件操作

    1.数据的保存: 1) 内存:常用的变量都是在内存里面的 缺点:关机或进程死掉数据丢失 解决方法:将数据保存至文件中 2 )文件:文本内容.二进制的文件内容 3 )数据库:保存    2.读文件: 1 ...

  4. python第二周数据类型 字符编码 文件处理

    第一数据类型需要学习的几个点: 用途 定义方式 常用操作和内置的方法 该类型总结: 可以存一个值或者多个值 只能存储一个值 可以存储多个值,值都可以是什么类型 有序或者无序 可变或者不可变 二:数字整 ...

  5. Python开发基础-Day5-字符编码、文件处理和函数基础(草稿)

    字符编码 为什么要有字符编码? 字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 一个文件用什么编码方式存储 ...

  6. 第二篇.2、python基础之字符编码

    一 了解字符编码的知识储备 一 计算机基础知识 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的 ...

  7. Python入门基础学习 一

    Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...

  8. python之旅:字符编码

    一 了解字符编码的知识储备 一 计算机基础知识 知识储备:cpu.内存.硬盘 二 文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启动了一个进程,是在 ...

  9. Python入门基础学习 二

    Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...

随机推荐

  1. PAT甲题题解-1072. Gas Station (30)-dijkstra最短路

    题意:从m个加油站里面选取1个站点,使得其离住宅的最近距离mindis尽可能地远,并且离所有住宅的距离都在服务范围ds之内.如果有很多相同mindis的加油站,输出距所有住宅平均距离最小的那个.如果平 ...

  2. 《Linux内核分析》--扒开系统调用的三层皮 20135311傅冬菁

    扒开系统调用的三层皮           20135311傅冬菁 一.内容分析 寄存器上下文(从用户态切换到内核态) 中断/int指令会在堆栈上保存一些寄存器的值(用户态栈顶地址..当时的状态字.当下 ...

  3. Android 7.0+相机、相册、裁剪适配问题

    Android 7.0+相机.相册.裁剪适配问题 在manifest中: <provider android:name="android.support.v4.content.File ...

  4. mysql存储过程学习第一天

    摘要:存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在 ...

  5. 51nod 1480 打广告(二分+线段树)

    题意 给出n个区间和m个区间,从这n个区间里选一个区间a,这m个区间选一个区间b,使得a&b的长度*c最大. 思路 如果这n个区间里有一个区间包含另一个区间,那另外一个区间就可以忽略掉,进行\ ...

  6. 安装及调试 Mavem Web

    一  使用Mavem eclipse菜单栏,找到file-->new -->other 然后找到Maven Project 然后next. 接着,选择maven-archetype-web ...

  7. 【刷题】BZOJ 1093 [ZJOI2007]最大半连通子图

    Description 一个有向图G=(V,E)称为半连通的(Semi-Connected),如果满足:?u,v∈V,满足u→v或v→u,即对于图中任意 两点u,v,存在一条u到v的有向路径或者从v到 ...

  8. 【bzoj3576】 Hnoi2014—江南乐

    http://www.lydsy.com/JudgeOnline/problem.php?id=3576 (题目链接) 题意 给出一个数$F$,然后$n$堆石子,每次操作可以把一堆不少于$F$的石子分 ...

  9. 【bzoj2754】 SCOI2012—喵星球上的点名

    http://www.lydsy.com/JudgeOnline/problem.php?id=2754 (题目链接) 题意 给出$n$个名字串,$m$个点名串,问对于每一个姓名串,它包含多少个点名串 ...

  10. POJ 2387 Til the Cows Come Home (图论,最短路径)

    POJ 2387 Til the Cows Come Home (图论,最短路径) Description Bessie is out in the field and wants to get ba ...