本文章记录学习过程中的细节和心得:

复习所学课程:

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.

 

万古青天一株莲