Python基础day-5[字符编码,文件处理,函数]

字符编码:

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

  字符编码其实就是在完成一件,字符====>数字的翻译过程.

  ASCII:

  最早计算机是美国发明的,所以最早诞生的ASCII码也是基于英文考虑的.ASCII码:一个Bytes代表一个字符,1Bytes=bit.最早的ASCII只用到后七位.

127个数字,已经完全能代表键盘了,后来又把127号之后的空位来表示新的字母、符号,还加入了很多画表格时需要用下到的横线、竖线、交叉等形状,一直把序号编到了最后一个状态255。从128 到255这一页的字符集被称”扩展字符集“。

  GBK标准:

  等到中国使用计算机的时候,已经没有可利用的字节状态来表示汉字了,所以中国人发明了GBK标准,一个字符等于两个Bytes.GBK包括了GB2312 的所有内容,同时又增加了近20000个新的汉字(包括繁体字)和符号。 后来少数民族也要用电脑了,于是我们再扩展,又加了几千个新的少数民族的字,GBK扩成了 GB18030。这一系列汉字编码的标准叫做 “DBCS“(Double Byte Charecter Set 双字节字符集).

  UNICODE:

  由于各国都有自己的一套像中国一样的编码标准,互相之间又看不懂对方的编码.所以ISO(国际标准化组织)制定了一种新的编码”Universal Multiple-Octet Coded Character Set”,简称 UCS, 俗称 “unicode“.unicode规定必须用两个字节,也就是16位来统一表示所有的字符,对于ASCII里的那些“半角”字符,unicode包持其原编码不变,只是将其长度由原 来的8位扩展为16位,而其他文化和语言的字符则全部重新统一编码。由于”半角”英文符号只需要用到低8位,所以其高8位永远是0,因此这种方案在保存英文文本时会多浪费一倍的空间.

  UTF-8

  UTF-8,对英文字符只用1Bytes表示,对中文字符用3Bytes.

补充:

  计算机内存中使用的编码是unicode,用空间来换取时间,而硬盘或者网络传输则使用的是utf-8,来达到节省空间的目的.

  计算机在存取数据的时候,以什么格式存的就需要以什么格式来解码.例如:数据在内存中使用unicode编码来保存,当数据要刷入硬盘时,就需要把数据用utf-8的标准转换成Bytes(二进制),保存在硬盘上,读取的时候就需要用utf-8的标准转换成unicode,如果保存和读取使用的编码不同会导致乱码.

  python中的字符编码:

  当我们在写一个Python文件的时候,这时候写的东西其实就是字符串,跟Python的命令没有任何关系,Python是一种解释语言,当我们用Python解释器去运行我们写的代码时,解释器会按照代码头声明的字符编码,先去硬盘读取数据,使用声明的字符编码解码转换成unicode编码,然后在解释执行.

  python3三中,默认使用的编码是unicode编码,Python2中则需要手动指定,否则代码无法正常运行.Python2中的 str默认存的是Bytes.而不是像Python3一样默认存的是unicode.

  Python使用 encode和decode 两个参数命令来编码和解码.

文件处理:

  打开文件:
  f = open(‘a.txt‘,‘w‘,encoding=‘utf-8‘)

  #encoding 定义文件的读取方式 w表示覆盖写入打开,a是追加写入文件内容,  r是只读模式
  #rb,wb,ab 以Bytes读取文件,二进制模式 不需要指定encoding
  

  f.write(‘安居客活动卡收到类似的看了\n3213213213213213\n‘)

  #写入字符串 无自动换行 需加\n    #同read Bytes模式

  f = open(‘a.txt‘,encoding=‘utf-8‘)
  print(f.read()) #读取文件所有内容,并打印出来 ()内写数字,根据字符来确定光标位置
  #当以Bytes方式读取文件时,需要指定 encoding来正常显示

  #关闭打开的文件
  f.close()

  #立即刷入写入内容
  f.flush()

  #判断文件是否关闭
  f.closed

  #查看文件名和字符编码
  f.name,f.encoding

  #移动光标
  f.seek(0) #以文件起始作为参考,()内是字节来移动 (3,0/1/2) 0/1/2 分别代表 文件起始/当前位置/文件末尾

  #告知当前光标位置
  f.tell()

  #截断(写操作) ()也是字节来判断
  f.truncate()

函数:

  一 为何要有函数?
    不加区分地将所有功能的代码垒到一起,问题是:
    代码可读性差
    代码冗余
    代码可扩展差

  如何解决?
    函数即工具,事先准备工具的过程是定义函数,拿来就用指的就是函数调用

  结论:函数使用必须是:先定义,后调用

  二:函数的分类
  1.内置函数:built-in
  2.自定义函数:
    def 函数名(参数1,参数2,...):
    ‘‘‘注释‘‘‘
    函数体

  示例:

    def a(t,c,h):     #传入三个参数,定义t:打印什么,c打印多少次,h打印几行
    for i in range(h):    #for循环,循环为h的次数
    print(t*c)  #打印内容t 和次数

  定义函数分类  

    定义无参函数: 不依赖外部参数运行
    def print()
    print(‘111111‘)
    定义有参函数: 依赖外部参数运行
    def a(t,c,h):
    for i in range(h):
    print(t*c)
    定义空函数: 函数体为pass
    def <函数名>(x,y,z)
    pass

时间: 2024-09-28 16:48:58

Python基础day-5[字符编码,文件处理,函数]的相关文章

Python基础编程之字符编码、数据类型、列表

目录: python简介 字符编码介绍 数据类型 一.Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承.之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者. python的发展历史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器. 1991年,第一个Pyt

Python基础之 一 字符编码及转换

python2 / python3编码转换 先上图一张: 说明:python编码转换的流程是 先进行decode解码,然后进行encode编码 解释: u'你好'  -->带u表示为unicode编码 b'\xc4\xe3\xba\xc3'   --> 带b的表示bytes类型由于utf8 是unicode的扩展,所以unicode和utf8之间是可以直接打印 注意:所有decode动作都是将已编码文件解码为unicode,然后在进行其他编码格式转换(通过encode) 直接举例说明:#pyt

Python基础(变量、字符编码、数据类型)

变量 变量名由字母.数字(不能为首字符).下划线组成,不能使用关键字 以下关键字不能声明为变量名 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'pri

Python基础 二进制和字符编码

二进制定义 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世纪德国数理哲学大师莱布尼兹发现.当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的.计算机中的二进制则是一个非常微小的开关,用"开"来表示1,"关"来表示0. 二进制与十进制转换 我们已经发现,二进制的第n位代表的十进制值都刚好遵循着2的n

python开发基础:字符编码&amp;文件操作

一,字符编码 1 以什么编码存的就要以什么编码取出 ps:内存固定使用unicode编码, 我们可以控制的编码是往硬盘存放或者基于网络传输选择编码 2 数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式#unicode----->encode(utf-8)------>bytes拿到bytes,就可以往文件内存放或者基于网络传输#bytes------>decode(gbk)------->unicode 3 python3中字符串被识别成unicode

Python基础(集合用法、文件操作、字符编码转换、函数)

集合(Set)及其函数 集合是一个无序的.无重复元素的序列. 1 list = {1, 3, 6, 5, 7, 9, 11, 3, 7} # 定义集合方式一 2 list1 = set([1, 3, 6, 5, 7, 9, 11, 3, 7]) # 定义集合方式二 3 list2 = set() # 定义一个空集合 4 5 print(list1, list) # 打印后可看到,集合中的元素已自动去重 6 print(3 in list) # 判断一个元素是否在集合中,返回bool值 7 pri

python第三天:字符编码、文件操作、函数

作业问题回顾 表格化输出 主要考察字符串的expandtabs的方法,使用空格替换TAB. 百鸡百钱 百鸡百钱的主要是用进行多次判断,然后输出打印. 上课内容 字符编码 概念 编码是计算机用来将人类可读的字符存储成二进制信息而使用的一种格式.字符编码主要针对字符的编码. python中相关的方法 decode:解码,将其他格式的数据转化为unicode格式的数据.转化以后就是Bytes类型的数据.Bytes的数据汉字会转化成字节码,而ascii码会转化成b'meg'的形式.可以接参数,接的参数就

python字符编码文件

字符编码发展 ASCII 255   只支持英文字母和数字,特殊字符   1bytes Unicode     中文和英文               统一2bytes utf-8      中文>3bytes  英文>1bytes bytes类型 文本数据总是unicode由str类型表示,二进制数据则由bytes类型表示 二进制数据用在视频,音频文件以及发送socket网络传输数据等 字符串转成二进制  str.encode("encoding=utf-8") 二进制转

python Day3 集合 文件处理 函数 字符编码 递归 高级函数

集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时