Python学习简记

这篇具有很好参考价值的文章主要介绍了Python学习简记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

做题时遇到的不知道的知识点会更新在此:


python中的int()函数可以用于进制转换

该函数最为常见的使用是用于强制类型转换,实际上,它可以有两个参数

Python学习简记

Python学习简记

Python学习简记 值得强调的是当传入两个参数时第一个参数一定要是字符串类型


字符串方法:

  • lower()将字符串所有字符变为小写(非原地)
  • upper()将字符串所有字符变为大写
  • title()将字符串内每一个单词首字母大写
  • capitlize()将首字母大写
  • .swapcase()将字符串中的大写字符变成小写字符,小写字符变成大写字符
  • strip()去除首尾空白字符
  • lstrip()去除左边空白字符
  • rstrip()去除右边空白字符
  • 想重复输出某个字符串可以使用*号
  • split()从字符串的左边开始切分,默认的切分参数(第一个)是空格,第二个参数可以选择指定切分次数,返回列表
  • rsplit()从字符串的右边开始切分,其他同上
  • isalpha()判断字符串是否只包含字母
  • isalnum()判断字符串是否全部由字母和数字组成
  • isdigit()判断字符串是否只包含数字
  • isdecimal()判断字符串是否只包含十进制数字
  • isnumeric()判断字符串是否只包含数字
  • 注意s.isdigit、isdecimal 和 s.isnumeric 区别
  • isspace()判断字符串是否只包含空格(回车、换行、水平制表符)
  • .center()居中对齐,第一个参数指定宽度,第二个参数可以指定填充字符是什么(默认是空格,如果设定的宽度小于原字符串宽度则返回原字符串)
  • .ljust()左对齐,参数同上
  • rjust()右对齐,参数同上
  • zfill()右对齐,只接受一个参数(指定宽度),默认使用0填充
  • .isidentifier()判断指定的字符串是否是合法的标识符
  • .encode()编码方法,可以指定编码的类型,传入参数即可
  • .decode()解码方法,可以指定解码的类型

python内置函数del(注意与列表.del()区分)

  • del 对象 直接删除一个对象
  • 可用于列表删除一个(del lst[ j ])或多个元素(del lst[ 0:3 ]利用切分)

内置函数/方法

  • max()参数为一个可迭代对象,得到其中的最大值
  • min()同上,得到其中的最小值
  • sum()第一个参数为一个可迭代对象,第二个参数为结果相加值(默认为0,即返回值会加上这个数),得到迭代对象的和
  • abs()返回传入参数的绝对值
  • ord()返回传入参数的ASCII码数值
  • hex()返回传入十进制整数的十六进制(返回类型是字符串)
  • bin()返回传入十进制整数的二进制(返回类型是字符串)
  • pow(x,y)返回x^y
  • .count() 统计列表中传入参数出现的次数
  • .index(参数)得到传入参数在列表中第一次出现的下标是多少(从0开始)(未找到则报错)
  • .find()查找传入参数在序列中的索引下标(未找到返回-1)
  • string.join(iterable)

    join() 方法获取可迭代对象中的所有项目,并将它们连接为一个字符串。

    必须将字符串指定为分隔符

  • .replace(old,new,max)可将字符串中的某些字符替换为其他字符,第一个参数是原字符,第二个参数是新字符,第三个参数是替换次数(默认替换全部),注意该函数不是原地替换

  • round(num,dig)

    函数返回一个浮点数,该浮点数是指定数字的舍入版本,并带有指定的小数位数。

    默认的小数位数为 0,表示该函数将返回最接近的整数。

  • eval()函数计算指定的表达式,如果该表达式是合法的 Python 语句,它会被执行。

  • set(序列集合或迭代器)函数创建集合对象。集合列表中的项目是无序去重的,因此它将以随机顺序出现。

  • hasattr(obj,name)函数用于判断对象是否包含对应的属性

  • setattr(obj,name,value)函数用于设置属性值,如果该对象已经拥有该属性值则对其进行修改,如果没有该属性,则创建该属性后对其赋值

  • dir(对象)可以查看某个对象所拥有的属性和方法

  • hex(十进制数)以字符串形式返回参数的十六进制

  • oct(十进制数)以字符串形式返回参数的八进制

  • bin(十进制数)以字符串形式返回参数的二进制


对输出函数print的总结

num=int(input("请输入一个整数"))
print("你输入了",num)
print("你输入了"+str(num))
print("你输入了%d"%(num))
print("你输入了{0}".format(num))
print(f"你输入了{num}")
print("你输入了%d"%(num),file=用open得到的文件对象)//输出到某个文件里,相当于write

常用数据类型

整数类型int


  • 二进制以0b开头
  • 八进制以0o开头
  • 十六进制以0x开头

这里还有一个值得注意的点:python中的整型是“无限长”的,因此它可以表示任何数

浮点数


python中只有float作为浮点数,没有double

主要注意python中对浮点数与Decimal的关系,例如:

Python学习简记

 可参考

布尔类型


有True和False两种,其中要注意的是python的bool可以作为数字进行运算

例如:
True+1=2

False+1=0 

字符串类型


 可以用一对单引号或一对双引号或三个单引号对或三个双引号对 表示

其中三引号表示的字符串可以跨行输入,其他的则不行

三引号还可以实现多行注释

对于字符串想要输出原字符串可以在字符串前加上r或R

print(r'我是字符串')

但是注意 想输出的字符串末尾不能是反斜杠,因为如果末尾是反斜杠就变成了\'即一个已经存在的转义字符

类型转换


float()

int()

str() 

bool()(字符串转成bool类型都是True)

运算符


python中没有++运算符和--运算符

python的整除是//

而 / 则会得到浮点数

幂运算是**

赋值上python可以支持解包赋值,即类似

a,b,c=1,2,3;
#这样就完成了a=1,b=2,c=3的赋值

对象id(地址)的比较可以使用is和is not

python的布尔运算符有and,or,not,in,not in

python的位运算符有&,|,<<,>>

其中<<是“高位溢出舍弃,低位补零”   >>是“低位溢出舍弃,高位补零”

条件表达式

x if 判断条件 else y

即如果判断条件返回True则得到x,反之得到y

pass语句


在遇到暂时不想写的地方时可以使用pass语句进行略过

分支结构


if 判断条件:
    语句
elif 判断条件:
    语句
else:
    语句

内置函数range


该函数用于生成一个整数序列

我们有如下三种方法对其进行创建

Python学习简记

该函数的返回值是一个迭代器对象Python学习简记

循环


 while循环

#语法结构
while 表达式:
    语句

for-in循环

in表达从(字符串、序列等)以此取值,称为遍历

for-in遍历的对象必须是可迭代对象

#语法结构
for 自定义的变量 in 可迭代对象:
    循环体

如果不需要上述的自定义变量可以使用'_'代替该位置


循环与else

在python中,else可以与循环搭配使用

Python学习简记

即一个循环如果正常退出则执行else语句内容 

列表


python中的列表可以相当于其他语言中的数组

Python学习简记

 上图可近似抽象表示一个列表的内存形式


列表的创建方式:

  • 直接使用中括号创建
  • 使用内置函数list()

列表的特点:

  • 列表元素按照顺序有序排序
  • 索引映射唯一一个元素
  • 列表可以存储重复数据
  • 列表可以任意数据类型混合存储
  • 列表会根据需要动态分配和回收内存空间
  • Python学习简记

列表的查询操作

Python学习简记

Python学习简记 这里值得强调的是切片得到的列表与原列表的id是不同的,说明新的列表是拥有了新的内存空间,此外,切片三个参数中的中间参数不管是正序遍历还是逆序遍历都是“开的一边”,即不会遍历的stop本身

Python学习简记


列表元素的增加操作

Python学习简记

值得强调的是append()方法是“原地添加元素”,extend()方法适用于两个列表的拼接(也是原地拼接) 

此外,切片也是一种灵活的方式

Python学习简记

输出如下

Python学习简记

 等于是在下标为>=1的后面所有元素都变了


列表的删除操作

  1. remove()(根据元素值删除)
  • 一次删除一个元素
  • 重复元素只删除第一个
  • 元素不存在则抛出异常

     2.pop()(根据索引进行删除)

  • 删除一个指定索引位置上的元素
  • 指定索引不存在则抛出异常
  • 如果不指定索引则默认删除最后一个元素

      3.切片

  • 可实现一次至少删除一个元素Python学习简记

Python学习简记

但是这样不是原地操作,最好的做法如下:

Python学习简记

Python学习简记

      4.clear()

  • 清空列表

      5.del()

  • 直接删除列表

列表元素的修改操作

  • 直接通过索引修改(单个元素)
  • 切片

Python学习简记

Python学习简记  


列表元素的排序

  1. 调用列表的sort()方法,默认将列表进行升序排序,如果指定参数reverse=True,则可实现降序排序(该方法是原地排序)
  2. 调用内置函数sorted(),同理可传入参数reverse=True实现降序排序(会产生新列表)

列表产生式

列表产生式是用于生成列表的公式

Python学习简记


补充列表的另外一些常用方法:

  • reverse() 实现原地反转列表

字典


什么是字典?

与列表一样,字典也是python的一种数据结构,它以键值对的形式存储数据Python学习简记

此外字典是可变序列,即我们可以对其中的元素进行增删改

字典是无序的,即添加的第一个元素不一定被放在第一个位置,添加的第二个元素也不一定在第二个位置,这是因为元素的位置是由字典的key经过哈希函数的结果来决定的,所以也会要求字典的key是不可变序列(类似字符串就是不可变序列)来避免元素的位置被频繁改变Python学习简记

值得一提的是字典也可以根据需要动态地伸缩

不过字典会浪费较大的空间,是一种空间换时间的数据结构


字典的创建

 主要有以下两种方式:

  • 使用花括号Python学习简记
  • 使用内置函数dict()Python学习简记

注意使用内置函数dict()内部是用等号'='进行赋值的不是冒号


字典元素的获取

主要有以下两种方式:

  • 使用中括号[]取值Python学习简记 
  • get()方法取值Python学习简记

上述二者的区别:

Python学习简记


 字典key的判断

Python学习简记


字典元素的删除

  • 使用.clear()方法可直接清空字典
  • 使用内置函数删除即可
    del 字典['张三']

字典元素的添加与修改

该操作较为简单,有点类似访问其中的元素操作

Python学习简记

Python学习简记


获取字典视图

  • .keys()方法获取字典中所有的key
  • .values()方法获取字典中所有的value
  • .items()方法获取字典中所有的键值对

这里还可以将上述得到的序列使用list()转换为列表方便操作


字典元素的遍历

Python学习简记

Python学习简记

当然使用上述提到的字典视图也可以实现遍历 



内置函数zip()

该函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个元组,然后返回由这些元组组成的列表

例如Python学习简记

如上两个列表使用zip(items,prices)所得到的为

[('Fruits',96),('Books',78),('Others',85)]

字典产生式

具体语法如下图所示

Python学习简记

元组

元组是python中内置的数据结构之一,是一个不可变序列,即元组不能被增删改

补充:

截至目前所学的不可变序列出现了有 字符串、元组,这些不可变序列如果进行了增删改就相当于直接修改了地址创建了一个新的对象,反之可变序列 列表、字典进行增删改操作对象地址并不会改变

语法如下图所示

Python学习简记


元组的创建方式

主要包含如下两种方式:

  • 直接小括号Python学习简记需要强调的是 只包含一个元素的元组需要使用逗号和小括号Python学习简记
  • 使用内置函数tuple()Python学习简记需要强调的是tuple()函数内还需要使用小括号

 实际上,元组的小括号是可以省略的Python学习简记

 需要强调的是:

元组中存放的是对象的引用

如果说元组中的对象本身是不可变对象,则不能再引用其他对象‘

如果说元组中的对象本身是可变对象,则可变对象的引用不能被修改,但是可变对象的数据可以修改Python学习简记


元组的遍历

Python学习简记 而关于元组元素的查看 则直接使用索引下标即可

此外想输出元组内的多个元素也可以使用切片操作,不过需要注意的是元组的切片也是使用的中括号

集合

集合也是python所提供的内置数据结构之一,并且它属于可变无序序列,我们通常使用“没有value的字典”来理解它,也就是说集合中的元素不能重复

Python学习简记


集合的创建

  • 使用{}创建Python学习简记
  •  使用内置函数set()Python学习简记

集合元素的判断操作

类似其他数据结构,直接使用in与not in 判断元素是否存在集合中即可


集合元素的新增操作

  • .add()方法,一次添加一个元素
  • .update()方法,一次添加一个或多个元素(参数是可迭代对象) 

集合的删除操作

  • .remove() 一次删除一个指定元素,如果元素不存在则抛出异常
  • .discard()同上一次删除一个指定元素,但是如果元素不存在不会报错
  • .pop()该方法无参数,它会随机删除集合中的一个元素
  • .clear()该方法用于清空集合

集合之间的关系

Python学习简记

值得强调的点是这个isdisjoint()方法,该方法如果两个集合没有交集返回True,反之返回False 


集合的数学操作

  • 交集 使用.intersection()方法可以返回两个集合的 交集
    • 此外 还可以使用 & 符号得到两个集合的 交集
  • 并集 使用.union()方法可以得到两个集合的 并集
    • 此外 还可以使用 | 符号得到两个集合的 并集
  • 差集 使用.difference()方法可以得到两个集合的 差集
    • 此外还可以使用 - 符号得到两个集合的差集
  • 对称差集 使用.symmetric_difference()可以得到两个集合的 对称差集
    • 此外还可以使用 ^ 符号得到

集合生成式

Python学习简记

将列表生成式的中括号改为花括号即可 

学了这么多生成式,我们需要注意的是元组没有生成式

python内置数据结构总结

Python学习简记

字符串


字符串的驻留机制


什么是字符串的驻留机制?

python对字符串仅保留一份相同且不可变的方法,不同的值被保留在字符串的驻留池内,python对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量


什么样的字符串会被驻留

  • 字符串的长度为0或1时
  • 符合标识符的字符串
  • 字符串只在编译时进行驻留,而非运行时
  • [-5,256]之间的整数数字

python还提供了方法允许我们对字符串进行强制驻留

即可以使用sys中的intern方法强制两个字符串指向同一对象

这里需要注意的是pycharm对字符串进行了优化,即可能不满足上述条件的字符串也会被驻留


字符串的比较操作

字符串与字符串之间其实可以使用类似Python学习简记

这些运算符进行比较

  • 比较规则:
    • 首先比较两个字符串的第一个字符,如果相等就继续比较下一个字符串,以次比较下去,直至两个字符串中的字符不相等,其比较结果就是两个字符串的比较结果,此后后续字符不再进行比较
  • 比较原理:
    • 两个字符进行比较时调用的是内置函数ord()所得到的值

值得强调的是==符号比较的是字符串的内容

而 is 运算符比较的是字符串的地址id


字符串的切片

与其他数据类型相似,字符串也能进行切片操作

但是,因为字符串是不可变类型,不具备增删改操作,切片操作将产生新的对象


字符串的格式化

对字符串进行格式化主要有一下两种方式:

1.%作为占位符Python学习简记 这一点与C语言中完全一样,这里不再赘述

2. {}作为占位符

Python学习简记

如上图所示的0与1分别代表format参数的第一个参数与第二个参数 

 补充:Python学习简记

 Python学习简记

 上图中如果format中只有一个参数那么可以省略0

函数

函数就是执行和完成特定功能的一段代码

函数的好处:

  • 复用代码
  • 隐藏实现细节
  • 提高可维护性
  • 提高可读性便于调试

函数的创建 

Python学习简记


函数的参数传递

主要有如下两种方式:

1.位置实参

根据形参对应的位置进行实参传递

Python学习简记

2.关键字实参

根据形参名称进行实参传递 Python学习简记


函数参数传递的内存分析

Python学习简记

如上图代码所示,我们定义了一个函数fun,且传入两个参数,分别时不可变类型int与可变类型list,我们发现在调用fun后n1还是n1,但是列表n2却被改变了

Python学习简记

  • 如果参数是不可变对象,在函数体内的修改不会影响实参的值
  • 如果是可变对象,则在函数体内会影响实参的值

函数的返回值

  • 如果函数没有返回值,return可以省略不写
  • 函数的返回值如果存在多个,返回的类型为元组

默认值参数

函数定义时,我们可以给形参设置默认值,如果不希望使用默认值时则可以传递实参,反之不传实参则默认使用默认值


个数可变的函数参数

主要有以下两类:

1.个数可变的位置参数

定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的位置参数

使用*定义个数可变的位置形参

结果为一个元组Python学习简记

2.个数可变的关键字形参

 定义函数时,可能无法事先确定传递的位置实参的个数时,使用可变的关键字参数

使用**定义个数可变的关键字形参

结果为一个字典

Python学习简记

值得强调的是,如果一个函数的形参既有个数可变的位置形参也有个数可变的关键字形参,那么我们定义 位置形参 放在 关键字形参前面


函数传参时的解包

只需在传实参时在前面加上对应的星号即可

Python学习简记

Python学习简记

变量的作用域

即程序代码能访问该变量的区域

根据变量的有效范围可分为:

  • 局部变量
    • 在函数内部定义的变量,只在函数内部有效,但如果局部变量使用global声明,这个变量就会成为全局变量
  • 全局变量
    • 在函数体外定义的变量,可作用于函数内外 

异常

python与其它高级程序语言一样提供了异常处理机制,可以在异常出现时进行捕获,然后内部“消化”,让程序继续运行


try....except....else....finally语句

Python学习简记

如上图所示,我们可以使用这样的语句来实现捕获异常,在try子句内编写可能会出现异常的语句块,except后书写异常类型,然后在except语句块内编写如果出现该异常需要执行的代码

 当然我们可以书写多个except语句,如果书写多个except语句的话,我们希望从上到下按照异常的范围大小,从小到大排下来,这样我们更能精确地处理异常

 Python学习简记

其次上述语句也可以补充使用else语句,else语句块的内容表示,如果try语句块中未出现异常所需要执行的代码

Python学习简记 最后,我们还可以添加finally语句块,该语句块无论是否发生异常都会被执行,通常用来释放try语句块中申请的资源

Python学习简记


常见异常类型如下图所示Python学习简记

类与对象

Python学习简记 Python学习简记

值得注意的一点是

实例对象的创建一般有两种形式

stu.info()
Student.info(stu)

 类属性、类方法、静态方法

Python学习简记

需要强调的是类方法与静态方法的区别

类方法:

 类方法和实例方法相似,它最少也要包含一个参数,只不过类方法中通常将其命名为 cls,Python 会自动将类本身绑定给 cls 参数(注意,绑定的不是类对象)。也就是说,我们在调用类方法时,无需显式为 cls 参数传参。 

其次,类方法只能访问类属性

类方法推荐使用类名直接调用,当然也可以使用实例对象来调用(不推荐)

Student.cm()
stu.cm()#不推荐

静态方法:

静态方法,其实就是我们学过的函数,和函数唯一的区别是,静态方法定义在类这个空间(类命名空间)中,而函数则定义在程序所在的空间(全局命名空间)中

静态方法没有类似 self、cls 这样的特殊参数,因此 Python 解释器不会对它包含的参数做任何类或对象的绑定。也正因为如此,类的静态方法中无法调用任何类属性和类方法

静态方法的调用,既可以使用类名,也可以使用类对象


动态绑定属性和方法
python是一门动态语言,在对象创建后,允许动态地绑定属性和方法

Python学习简记

面向对象的三大特征


封装

封装可以提高程序的安全性,封装即将属性和方法包装到类对象中,在方法内部对属性进行操作,在类的外部调用方法

需要强调的是,在python中没有专门的修饰符用于表示属性的私有,我们通常在我们希望的私有成员前面使用两个下划线_

Python学习简记


继承

继承可以很好地提高代码的复用性

python中的继承语法格式如下

Python学习简记

 如果一个类没有继承任何类则,默认继承object

python支持多继承,即一个子类可以有多个父类

定义子类的构造方法时,必须在其中调用父类的构造方法(利用super())

Python学习简记

多态

多态可以提高程序的可扩展性和可维护性

Python学习简记

Python学习简记Python学习简记

方法重写

  • 如果子类对继承自父类的某个属性或方法不满意,可以在子类中对其进行重新编写
  • 子类重写的方法中也可以通过super().xxx调用父类的方法Python学习简记

 object类

  • object类是所有类的父类,因此所有类都有object类的属性和方法
  • object类中存在一个__str()__方法,用于返回一个对象的描述,我们通常会将其重写使其返回更加确切的类描述Python学习简记

如上图所示,如果我们没有重写__str__方法则print(p)会输出该对象的地址,反之则输出了我们重写方法__str__返回的内容 

object的一些属性

  • x.__dict__ 如果x是一个实例对象的话,那么返回实力对象的属性字典,如果x是一个类名则返回该类的属性与方法的字典
  • x.__class__ 返回对象所属的类
  • x.__bases__ 返回一个元组包含x的父类
  • x.__mro__ 返回一个元组包含类的层次结构
  • x.__subclasses__ 返回子类的列表 

object的一些方法:

  • __add__(self,other) 类似C++实现了类与类之间的运算符操作一样,如果我们想使得两个类可以相加,我们就需要实现它
  • __len__(self)同理,如果我们想要得到len(类),那么我们需要在该类中实现该方法 
  • __new__(cls,其他参数) 与 __init__(self) 中前者用于创建对象,后者则用于初始化前者创建的对象,具体可参考通俗的讲解Python中的__new__()方法

值得强调的是发现__new__方法是传入类(cls),而__init__方法传入类的实例化对象(self),而有意思的是,__new__方法返回的值就是一个实例化对象(ps:如果__new__方法返回None,则__init__方法不会被执行,并且返回值只能调用父类中的__new__方法,而不能调用毫无关系的类的__new__方法)
 

类的浅拷贝与深拷贝

  • 变量的赋值操作:实质上是形成两个变量指向同一个对象
  • 浅拷贝:使用copy模块中的copy方法,python中的拷贝一般都是浅拷贝,拷贝时,对象包含的子对象内容不拷贝,因此源对象与拷贝对象会引用同一个子对象
  • 深拷贝:使用copy模块中的deepcopy方法,递归拷贝对象中包含的子对象,源对象与拷贝对象中的所有子对象均不同

Python学习简记

Python学习简记

Python学习简记 如上图所示,我们发现computer对象与浅拷贝对象computer2是不同的对象,但是他们的子对象都是相同的

 Python学习简记

Python学习简记 上图则使用了深拷贝,我们发现源对象与拷贝对象都不同,包括他们的子对象 

模块Modules

我们可以简单将模块理解为一个.py文件就是一个模块

而一个模块会包含函数、类、语句

 使用模块的好处:

  • 方便其他程序或脚本的导入并使用
  • 避免函数名和变量名的冲突
  • 提高代码的可维护性
  • 提高代码的可重用性
  • 有利于团队协作开发

模块的导入

我们在自定义模块时,名称尽量不要与python自带的标准模块名称相同

导入模块的方式有如下两种:

Python学习简记

此外第三方模块的导入

Python学习简记


以主程序形式运行

Python学习简记 简单地说,就是我们的模块中因为可以包含语句例如print,因此在我们导入某个模块运行时,该模块的语句也会被执行,如果我们不希望它被执行,就在该语句加上if __name__ == __name__即可


  • 包是一个分层次的目录结构,它将功能相近的模块整合到一个目录下
  • 包使得我们的代码更为规范,避免了模块名称的冲突
  • 包在创建时通常会包含__init__.py文件,而目录不会

Python学习简记

值得强调的是,使用import进行导入,后面只能跟包或者是模块

但是使用from...import...可以导入包、模块、函数、类


 python中常用的内置模块Python学习简记

文件

文件的读写原理如下图所示

Python学习简记

.py文件被解释器所运行,而解释器会用到操作系统中的资源进行相关操作


使用python中的文件相关函数来实现对文件的操作

一般分为以下步骤

  1. 获取文件对象
  2. 对文件对象进行操作
  3. 关闭文件对象
  • 内置函数open()创建文件对象 

语法规则如下图所示

Python学习简记


常用的文件打开方式

按照文件的数据组织形式,文件分为以下两类

  1. 文本文件:存储的是普通’字符‘文本,默认为unicode字符集,可以用记事本打开
  2. 二进制文件:把数据内容用’字节‘进行存储,无法用记事本打开,例如MP3,jpg图片Python学习简记

文件对象的常用方法 Python学习简记

值得强调的是flush与close的区别 

close()关闭流对象,但是先刷新一次缓冲区,关闭之后,流对象不可以继续再使用了。
flush()仅仅是刷新缓冲区(一般写字符时要用,因为字符是先进入的缓冲区),流对象还可以继续使用


with语句(上下文管理器)

  • with语句可以自动管理上下文资源,无论说明原因跳出with块,都能确保文件的正确关闭,以此来达到释放资源的目的
  • 该语句可以避免遗忘关闭文件的行为
  • Python学习简记

 Python学习简记

上图是一个利用with语句实现copy功能的代码 

os模块的常用函数

  • os模块是python内置的与操作系统功能和文件系统相关的模块,该模块中的语句的执行结果通常与操作系统有关,在不同的操作系统上运行结果可能不同
  • os模块与os.path模块用于对目录或文件进行操作

Python学习简记

  • filename.endswith('.后缀')用于判断是否某个文件以参数为后缀名
  • os.walk(path)用于遍历目录下的所有文件包含子目录下,返回值是一个迭代器对象

下图则是os.path中的常用函数

Python学习简记


序列化与反序列化

通过文件操作,我们可以将字符串写入到文件中,但是如果是一个对象(例如列表、元组、字典等)就无法直接写入到文件中,我们需要对这个对象进行序列化,然后才能写入文件中

因此人们设计了一套协议,按照某种规则,把内存中的数据转化为字节序列,保存到文件中,这就是序列化,反之,从文件中将字节序列恢复到内存中,这就是反序列化

这套协议就是JSON

Python学习简记

序列化

  • dumps

Python学习简记

  • dump

Python学习简记

反序列化

  • loads

Python学习简记

Python学习简记 

  • load

 Python学习简记

load与loads的区别在于参数,即loads的参数是一个字符串,而load希望的参数是一个文件 文章来源地址https://www.toymoban.com/news/detail-419339.html

到了这里,关于Python学习简记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数学建模 | 关于随机森林你必须知道的20个知识点

    1. 什么是随机森林?  随机森林是一种集成学习方法,通过构建多棵决策树,并让它们进行投票来提高预测准确性。 2. 随机森林如何避免过拟合?  随机森林通过从训练数据集中随机抽取样本构建决策树来避免过拟合。 3. 构建随机森林需要多少棵决策树?  通常100-500棵决策树就可

    2024年01月22日
    浏览(45)
  • 数学建模 | 关于ARMA模型你必须知道的20个知识点

    1. ARMA模型的含义是什么? ARMA模型综合考虑自回归模型和移动平均模型,使用过去的观测值和误差项的移动平均来预测未来值。 2. ARMA模型的表示方法是什么? ARMA(p,q)模型,p表示自回归模型的阶数,q表示移动平均模型的阶数。 3. ARMA模型的公式是什么? Y_t = c + φ_1Y_{t-1} + ... + φ_pY_{

    2024年02月09日
    浏览(37)
  • 第一天 关于项目遇到的问题和缺少的知识点

    配置文件使用的都是配置类方式 创建配置类WebMvcConfig,设置静态资源映射 用于在Springboot项目中, 默认静态资源的存放目录为 : \\\"classpath:/resources/\\\", \\\"classpath:/static/\\\", \\\"classpath:/public/\\\" ; 而在我们的项目中静态资源存放在 backend, front 目录中, 那么这个时候要想访问到静态资源, 就需要

    2024年02月09日
    浏览(52)
  • python算法中的机器学习算法之无监督学习知识点(详解)

    目录 学习目标: 学习内容: Ⅰ. K均值聚类(K-Means Clustering) Ⅱ. 层次聚类(Hierarchical Clusteri

    2024年02月01日
    浏览(45)
  • 数学建模 | 关于季节性ARIMA模型你必须知道的20个知识点

    1. SARIMA模型的含义是什么? SARIMA模型是ARIMA模型的扩展,可以对存在季节性周期变化的时间序列进行建模和预测。 2. SARIMA模型的表示方法是什么?  SARIMA(p,d,q)(P,D,Q)s模型,s表示季节性周期。 3. SARIMA模型的参数有哪些?  同ARIMA模型,还包括季节性周期s和季节性自回归模型/移动平均模

    2024年02月12日
    浏览(33)
  • 更深层次理解Python的 列表、元组、字典、集合(工作面试学习必需掌握的知识点)

    目录 序列介绍 列表  列表的创建 range()创建整数列表   推导式生成列表

    2024年02月22日
    浏览(45)
  • 后悔没早学这份Python神级文档!2023最新入门到进阶核心知识点学习文档!

    如今学 Python 的程序员越来越多,甚至不少人会把 Python 当作第一语言来学习。不过尽管 Python 功能强大上手轻松,但并不代表它的学习曲线不陡峭,得来全不费工夫。 当推开 Python 的大门,你会发现 Python 入门简单但精通很难。看似语法记得滚瓜烂熟,但一进入实际项目,就

    2024年02月06日
    浏览(48)
  • 数据结构—顺序表(如果想知道顺序表的全部基础知识点,那么只看这一篇就足够了!)

            前言:学习完了C语言的基础知识点之后,我们就需要使用我们所学的知识来进一步对存储在内存中的数据进行操作,这时候我们就需要学习数据结构。而这篇文章为数据结构中顺序表的讲解。 ✨✨✨ 这里是秋刀鱼不做梦的BLOG ✨✨✨ 想要了解更多内容可以访问我的

    2024年04月13日
    浏览(46)
  • CSS基础之伪类选择器(如果想知道CSS的伪类选择器知识点,那么只看这一篇就足够了!)

            前言:学习CSS就必须要学习选择器,在之前我们已经学习了基本选择器和复合选择器,但是还有几个选择器没有学习,这篇文章主要讲解伪类选择器。 ✨✨ ✨ 这里是秋刀鱼不做梦的BLOG ✨✨✨ 想要了解更多内容可以访问我的主页 秋刀鱼不做梦-CSDN博客 那么废话不多

    2024年04月17日
    浏览(48)
  • [深度学习]1. 深度学习知识点汇总

    本文记录了我在学习深度学习的过程中遇到过的不懂的知识点,为了方便翻阅,故将其发表于此,随时更新,供大家参考。 在深度学习中, 测试精度 和 训练精度 是两个重要的指标,它们分别代表了模型在 测试集上的分类正确率 和 训练集上的分类正确率 。测试集是用来评

    2024年02月10日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包