文件修改的两种方式 函数 函数的参数

一. 文件修改的两种方式
PS:硬盘上没有文件修改一说,都是新文件覆盖旧文件
文件修改的思路:将文件从硬盘加载到内存,在内存中修改后覆盖回硬盘
方式一:
将文件一次性全部读入内存,在内存中修改好后一次性写进硬盘
优点:不耗费硬盘
缺点:耗费内存
方式二:
将文件逐行读入内存,修改好后写入临时文件
将原文件删除,将临时文件改名为原文件
优点:节省内存
缺点:耗费硬盘

方式一:
with open(‘a.txt’,‘r’,encoding=‘utf-8’)as f:
res = f.read()
res1 = res.replace(‘m’,‘n’)
with open(‘a.txt’,‘w’,encoding=‘utf-8’)as f1:
f1.write(res1)
方式二:
import os
with open(‘a.txt’,‘r’,encoding=‘utf-8’)as f1,open(’.a.txt’,‘r’,encoding=‘utf-8’)as f2:
for i in f1:
res = i.replace(‘m’,‘n’)
f2.write(res)
os.remove(‘a.txt’)
os.rename(’.a.txt’,‘a.txt’)

二 函数
什么是函数:具备某种功能的工具
工具的使用:
事先准备好工具:函数的定义
遇到应用场景拿来就用:函数的调用
为何要有函数:
程序组织结构不清晰,可读性差
代码冗余
扩展性差
如何用函数:
函数的使用原则:先定义后调用
定义函数:
def 函数名(形参1,形参2…):
‘’‘文档注释’’’
代码1
代码2

return 返回值
调用函数:
函数名(实参1,实参2…)

函数的基本使用:
1,定义函数
与定义变量类似,定义函数是函数体代码的内存地址,绑定给函数名
2.调用函数
函数名()===>函数代码的地址加(),触发函数体代码的运行

3.定义函数的三种格式:
3.1 无参函数:即形参部分为空
3.2 有参函数 即形参部分不为空
3.3 空函数 即函数体代码部分为pass 或者 …
4.函数调用的三种格式
4.1 语句形式:单纯的调用一下 func()
4.2 表达式形式 res = func()
4.3 可以把函数当做值传给另一个函数 print(func())

5.return 用法:
函数内可以有多个return, 但是只要执行到return就会终止函数,并把return后的值当做本次调用的结果返回
函数可以有三种形式的返回值:
5.1 return 值 返回的是该值本身
5.2 return 值1,值2,值3 返回的是个元组
5.3 没有return 默认返回None

总结:函数的使用一定要分2个阶段去看
定义阶段只检测语法,不执行代码,即不检测逻辑
调用阶段执行函数体代码

三.函数的参数
1.参数分为两类,定义阶段的叫形参,调用阶段的叫实参
2.位置参数:
2.1 位置形参:在定义阶段,依次定义的形参,叫做位置形参,特点:必须被传值
2.2 位置实参:在调用阶段,依次定义的实参,叫做位置实参,特点:与位置形参一一对应传参
3.关键字实参:
在调用阶段,按照key=value方式给确定的形参传值,叫做关键字实参,特点:传值时可以打乱顺序
位置实参可与关键字实参混用,但是关键字实参必须写在位置实参后面,并且不能给同一个形参多次传值
4.默认形参:
在定义阶段就为某个形参赋值,该形参称为有默认值的形参,即默认形参
特点:定义阶段就已赋值,意味着调用阶段可以不用传值,但是若调用阶段传了值,则以调用阶段传的值为准
PS:默认形参只在定义阶段被赋值一次,函数定义之后的改变对默认形参没有影响
m=333
def func(x,y=m): # y=333
print(x,y)

m=44444
func(1)
#1 333

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值