文件操作,函数中的参数

====文件操作补充====

- 不要对同一文件又读又写,如果想修改文件内容,需要把文件内容读取后修改,再把修改的内容和原文件中的其他原内容添加到新文件中

- 文件操作时,不写mode,则默认为只读模式

- 注意光标,光标在哪里,从光标开始读

- r+  读写最常用

 - read()  读取所有内容,生成一个字符串

 - readline()   只读取一行内容,生成一个字符串

 - readlines()  读取所有内容,生成一个列表

 - write()    把需要写的字符串,写进文件

 - writelines()    把一个列表写进文件

==================

初始函数

- 为何要使用函数:原代码冗余,可读性差

- 如何定义函数:def     函数名  (): 参数    函数体     返回值

 - 返回值

  - 有返回值   当函数运行到return时,函数运行结束,函数表达式返回一个返回值

  - 无返回值   当函数内没有return时,函数表达式返回一个None

 - 参数

=======参数=========

位置参数,默认参数,动态参数      

- 位置参数   (站在函数调用的角度上)

  - 按位置传参

  - 按关键字传参

  - 混合传参:必须先按位置传参,再按关键字传参

 

- 默认参数   设置参数默认值后,调用可以不传递该参数    (站在函数定义的角度上)

  - 在函数定义时,默认参数要在位置参数的后面

  - 当默认参数为不可变类型时,注:在定义函数前要把要表示出默认函数的参数值

b1=10
def func(a,b=b1):
    print(a,b)
func(1)         #输出   1 10

  - 当默认参数为可变类型时,每次调用默认值时,都会在默认值中添加数据

def func(l = []):
    l.append(123)
    print(l)

func()   #[123]
func([]) #[123]
func()   #[123,123]

- 动态参数  对于要传多个参数到函数中时,要需要用*arags  或  **kwargs

  - 要传参数是按位置参数的,需要在定义函数中,用*arags聚合转成元祖                若要传进函数的参数形式是列表,元祖,字符,集合   需要在调用函数时用*打散

  - 要传参数是按关键字参数的,需要在定义函数中,用**kwargs聚合转化成字典      若要传进函数的参数形式是字典   需要在调用函数时用**打散

 

函数的嵌套:在定义函数中,内部又定义了一个函数,即函数1中又定义了一个函数2,当调用函数1时,才能运行内部的函数2,不能在函数外使用函数2

- 调用内部函数,往内部函数中传参方法

def func1(*args,**kwargs):
    def func2(*a,**e):
        print(a,e)                                  输出  (1, 2, 3, 4) {'e': 3}
    func2(*args,**kwargs)
func1(1,2,3,4,e=3)                          

 

posted @ 2017-08-29 16:46  JAYWX  阅读(181)  评论(0编辑  收藏  举报