文件的数据是存放于硬盘上的,因而只存在覆盖、不存在修改这么一说,我们平时看到的修改文件,都是模拟出来的效果,具体的说有两种实现方式:
一、将文件加载到内存,内存改了覆盖在硬盘
二、将内容一行一行读出来生成新文件把老文件覆盖
函数
就是具有某项功能的工具得先定义好好后才能被调用,可用重复使用
分类:内置:系统自带的函数
自定义:根据自己的需求私人订制
如何定义函数
语法
def 函数名(参数1,参数2,参数3,...):
'''注释'''
函数体
return 返回的值
语法错误在函数定义阶段就会检测出来,而代码的逻辑错误只有在执行时才会知道
1、无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印 2、有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值 3、空函数:设计代码结构
一 调用函数
函数的调用:函数名加括号 1 先找到名字 2 根据名字调用代码
二 函数返回值
无return->None return 1个值->返回1个值 return 逗号分隔多个值->元组
三函数调用的行式
1 语句形式:foo() 2 表达式形式:3*len('hello') 3 当中另外一个函数的参数:range(len('hello'))
四、函数的参数
分实参与形参
参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定
位置参数:按照从左到右的顺序定义的参数
位置形参:必选参数
位置实参:按照位置给形参传值
2、关键字参数:按照key=value的形式定义的实参
无需按照位置为形参传值
注意的问题:
1. 关键字实参必须在位置实参右面
2. 对同一个形参不能重复传值
3、默认参数:形参在定义时就已经为其赋值
可以传值也可以不传值,经常需要变得参数定义成位置形参,变化较小的参数定义成默认参数(形参)
注意的问题:
1. 只在定义时赋值一次
2. 默认参数的定义应该在位置形参右面
3. 默认参数通常应该定义成不可变类型
4、可变长参数:
可变长指的是实参值的个数不固定
而实参有按位置和按关键字两种形式定义,针对这两种形式的可变长,形参对应有两种解决方案来完整地存放它们,分别是*args,**kwargs
5、命名关键字参数:*后定义的参数,必须被传值(有默认值的除外),且必须按照关键字实参的形式传递
可以保证,传入的参数中一定包含某些关键字