• DAY7学习笔记


      字符编码

        什么是字符编码

          字符编码表:人类的字符相对应的数字,二进制。

          ASCII码:只能识别英文字符,1英文字符为1=8bit。(用8个二进制bit(比特位)位表示一个英文字符)

          GBK:只能识别汉字与英文,1汉字=16bit(Shift_JIS日本字符编码)(Euc_kr韩国字符编码)

          Unicode:能识别万国字符,1字符=16bit=2Bytes。

          utf-8:是Unicode的转换格式,1个英文字符=1Bytes 1汉字=3Bytes。

          重点理论:

            1.编码与解码:

              字符----编码---->unicode的二进制----编码---->GBK的二进制

              GBK的二进制----解码---->unicode的二进制----解码---->字符

            2.解决乱码问题的核心法则:

              字符用什么编码格式编码,就应该用什么编码格式进行解码。

            3.python解释器默认的字符编码:

              python2为ASCII,python3为UTF-8。(可以通过更改python解释器默认使用的字符编码,在文件首行利用“ #coding:文件所需字符编码 ”。)

              在python2中可以在字符串前加上u,来让其存成unicode,python3则默认为此。

          关于字符编码的操作:

            1.编写python文件,首行应添加文件头。

            2.用python2写程序,定义字符串时,应加前缀u。

            3.python3中的字符串都是unicode编码的,python3的字符串encode之后可以得到bytes类型。

        为何字符要编码

          人类与计算机打交道用的是人的字符,而计算机无法识别人的字符,只能识别二进制,所以必须将人类的字符编码编译成计算机能识别的二进制数。

        如何用字符编码

          编写时,首行输入文件头,输入输出时已UTF-8为编码类型。

      文件处理

        什么是文件处理

          文件是操作系统提供给用户/应用程序的一种虚拟单位,该虚拟单位直接映射的是硬盘空间。

        为何要处理文件

          用户/应用程序直接操作文件(读/写)就被系统转换成具体的硬盘操作,从而实现用户/应用程序将内存中的数据永久保存到磁盘中。

        如何用文件

          文件处理的三个步骤:

            文件对象(应用程序的内存资源)对应操作系统打开的文件(操作系统的内存资源)

            读取文件中的数据

            向操作系统发送信号,让操作系统关闭打开的文件,从未回收操作系统的资源。

          文件打开模式:r(默认的,只读文件,在文件不存在时则报错,如果文件存在则文件指针跳到文件的开头)、w、a

          操作文件内容的模式:t(默认的,操作文件内容都是以字符串为单位,会自动帮我们解码,必须指定encoding参数

                    b(操作文件内容都是以Bytes(二进制)为单位,硬盘中存的时什么就取出什么,一定不能指定encoding参数)

                    +

            总结:t模式只适用于文本文件,而b模式可以用于任意文件。

          with的使用:上下文管理(读写文件操作):with open(r'c.txt',mode='r',encoding='utf-8') as f,open(r'b.txt',mode='r',encoding='utf-8') as f1:

                循环读文件内容的方法:with open(r'c.txt',mode='rt',encoding='utf-8') as f:

                             for line in f:

                              print(line,end='')

  • 相关阅读:
    poj-2376 Cleaning Shifts (排序+贪心)
    AOJ 0525
    POJ -3050 Hopscotch
    POJ-2718 Smallest Difference
    AOJ 0121: Seven Puzzle (BFS DP STL 逆向推理)(转载)
    POJ-3187 Backward Digit Sums (暴力枚举)
    POJ-3669 Meteor Shower(bfs)
    分布式消息系统Kafka初步
    nginx源码学习----内存池
    def文件格式
  • 原文地址:https://www.cnblogs.com/lipengjia/p/9675841.html
Copyright © 2020-2023  润新知