本文章记录学习过程中的细节和心得:
复习所学课程:
1、文件的操作:
打开文件,对文件的操作打开方式有两种:
第一种:
f = open("test.txt", "r")#以只读方式打开文件,此方式不能写和追加。 f.readline#读取第一行 f.readline#读取第二行,以此类推。 f.readlines#读取所有行到内存中。 f.close#关闭文件
第二种:
with open("test.txt", "r") as f1, open("test2.txt", "r") as f2#以with方式打开文件,操作完成后,会自动关闭文件,不用使用f.close方法。
修改文件,打开时,对文件的方式有以下几种:
r:只读方式打开原文件,不能写和追加。
w:以写的方式打开文件,如果有原文件,就进行覆盖,如果没有原文件,就进行创建,以w方式打开的文件是一个空文件。
a:以追加方式打开文件,不能读,只能在最后添加内容。
r+:以读和追加写的方式打开文件,可读,可在最后追加,不能在中间编辑,2.7支持在中间编辑,但是新编写的内容会覆盖旧的内容。
w+:以读和写的方式打开晚间,如果有原文件,就进行覆盖,如果没有原文件,就进行创建,以w+方式打开的文件是一个空文件。
a+:以读和追加的方式打开文件,可读,可在最后追加。
rb,wb,ab:以二进制操作,适用于视频处理。
函数的操作:
面向对象的编程:比如Java,使用类,class;
面向过程的编程,如Python,使用def定义的函数;
面向函数的编程,比如Hash等,输出是固定的,不像python,是可变的。
定义一个函数:
def test(x,y,z, *args, **kwargs): """ **********#参数,注释等描述 """ print(x) print(y) print(z) print(args) print(kwargs) return True test(1,2,3,4,5,6,niubin="zzz")
变量的输入,变量作为形参,输入的是实参,变量可以有,也可以没有;
变量的类型有位置变量,即上述代码,变量和实参按照位置一一对应,也可以使用关键字变量,比如x=1,y=2,z=3;
关键字变量不能位于位置变量之前;
对于不能确定数量的变量,可以使用*args输入,实际输入为元祖,上述例子输入为(4,5,6)
对于不能确定数量的字典,可以使用*kwargs输入,实际输入为字典,上述例子输入为{niubin: “zzz“}
高阶函数:
函数中,变量的输入,可以使用其他的函数。
递归:
必须有明确的退出条件;
每一次递归,函数的覆盖范围必须减少;
效率低下,Python规定的次数是999次。
局部变量和全局变量:
变量都有自己的作用域,全局变量作用于全局,函数内部的变量作用于函数内部,如果函数内部没有这个变量,逐渐每层向外层查找,直到查找到全局变量;
全局变量尽量不要从函数内部修改,如果需要修改,需要Global声明;
如果全局变量是列表或者字典形式,可以从函数内部修改。
如果全局变量是字符串,数字等形式,尽量不要修改。
关于修改后的关系,示例代码如下:
niubin = 32 def test(a,b,*args, **kwargs): print(a) print(b) print(args) print(kwargs) global niubin niubin = 33 print(niubin,"22222")#输出为33,因为变量已经修改 print(niubin, "!!!!!!")#输出为32,因为全局变量没有修改 test(1,2,3,4,5,6, xxx="bbb", yyy="zzzz") print(niubin, "333333333")#输入为33,因为global已经声明,所以全局变量被修改,如果没有global声明,此处输出应为32.