一、内容回顾
1、文件操作
步骤:
1)打开文件 open("路径“,mode="打开方式”,encoding="编码方式”)
- 打开方式 主要有:r、 w、 a、 r+、 w+、a+ 、r+b、w+b
- b 以byte类型打开文件
- encoding指定编码格式 一般情况用utf-8
2)操作文件
- 读
1)f.read()一次性将所有内容读出
2)f.readline()一行一行读出 不知道在哪里结束,视频和图片没有行需要按照字节数读取
3)f.readlines()一次性将所有文件内容读出,按行返回一个列表 容易造成内存溢出
4)用for循环读取内容
f=open("test.txt",mode="r",encoding="utf-8") for line in f: print(line)
- 写
#f.write()向文件中写入内容
- 光标——文件指针
1)f.seek()设置光标的位置 以字节为单位
2)f.tell()获取光标当前的位置
3)f,truncate() 截取文件制定的长度
3)关闭文件
f.close()关闭文件
4)修改文件
python内文件操作无法直接修改文件,而是将待修改的文件全部读出,需要修改的写入到一个新的文件,然后将原有的文件删除,新的文件重命名为原来的文件
with open("test.txt",mode="r",encoding="utf-8") as f,open("test.bak",mode="w",encoding="utf-8") as f2: for line in f: if "yhm" in line: line.replace("yhm","海鸥") #写文件 f2.write(line) #删除文件 和重命名文件 import os os.remove("test.txt") #删除原文件 os.rename("test.bak","test.txt") # 重命名文件
二、上次作业讲解
暂无
三、今日内容
1、函数
s="yhm ningbohaidianyuan" count=0 for i in s: count+=1 print(count) s1="小小海鸥” count=0 for i in s: #循环迭代 获得字符的个数 count+=1 print(count)
每次计算字符串的个数的时候,需要敲一遍代码,啰嗦
引入函数my_len函数,将这段代码,保存在一个地方,需要使用的时候,调用函数
s="小小海鸥” def my_len(s): #定义一个my_len()函数 count=o for i in s: count+=1 print(count) my_len(s) #调用函数
1)函数的定义
def 函数名(参数):
函数体
return i
return 函数的返回值,调用函数时,会得到一个函数执行的返回结果
2)函数返回值的三种情况
- 无返回值——默认返回为None
1)不写return
2)只写return 函数体中不写return 一旦执行到函数体的return 函数体后续的所有代码不执行了 直接跳出函数
3)return None 不常用
- 返回一个值
1)可以返回一个字符串、数字、列表、字典、函数..可以返回任何数据类型
2)只要有返回值,调用函数后就能接受到数据
3)一个程序中如果有多个return时,只执行第一个return
- 返回多个值
多个返回值一定要注意有几个返回值,就要用几个变量去接受
3)函数的参数
- 形参:按照位置传参 *args 默认参数 **kwargs
- 实参:按照位置传参 按照关键字传传参
四、今日作业
---恢复内容结束---
一、内容回顾
1、文件操作
步骤:
1)打开文件 open("路径“,mode="打开方式”,encoding="编码方式”)
- 打开方式 主要有:r、 w、 a、 r+、 w+、a+ 、r+b、w+b
- b 以byte类型打开文件
- encoding指定编码格式 一般情况用utf-8
2)操作文件
- 读
1)f.read()一次性将所有内容读出
2)f.readline()一行一行读出 不知道在哪里结束,视频和图片没有行需要按照字节数读取
3)f.readlines()一次性将所有文件内容读出,按行返回一个列表 容易造成内存溢出
4)用for循环读取内容
f=open("test.txt",mode="r",encoding="utf-8") for line in f: print(line)
- 写
#f.write()向文件中写入内容
- 光标——文件指针
1)f.seek()设置光标的位置 以字节为单位
2)f.tell()获取光标当前的位置
3)f,truncate() 截取文件制定的长度
3)关闭文件
f.close()关闭文件
4)修改文件
python内文件操作无法直接修改文件,而是将待修改的文件全部读出,需要修改的写入到一个新的文件,然后将原有的文件删除,新的文件重命名为原来的文件
with open("test.txt",mode="r",encoding="utf-8") as f,open("test.bak",mode="w",encoding="utf-8") as f2: for line in f: if "yhm" in line: line.replace("yhm","海鸥") #写文件 f2.write(line) #删除文件 和重命名文件 import os os.remove("test.txt") #删除原文件 os.rename("test.bak","test.txt") # 重命名文件
二、上次作业讲解
暂无
三、今日内容
1、函数
s="yhm ningbohaidianyuan" count=0 for i in s: count+=1 print(count) s1="小小海鸥” count=0 for i in s: #循环迭代 获得字符的个数 count+=1 print(count)
每次计算字符串的个数的时候,需要敲一遍代码,啰嗦
引入函数my_len函数,将这段代码,保存在一个地方,需要使用的时候,调用函数
s="小小海鸥” def my_len(s): #定义一个my_len()函数 count=o for i in s: count+=1 print(count) my_len(s) #调用函数
1)函数的定义
def 函数名(参数):
函数体
return i
return 函数的返回值,调用函数时,会得到一个函数执行的返回结果
2)函数返回值的三种情况
- 无返回值——默认返回为None
1)不写return 函数内代码执行完自动结束
2)只写return 函数体中不写return 一旦执行到函数体的return 函数体后续的所有代码不执行了 直接跳出函数
3)return None 不常用
- 返回一个值,返回值可以接收也可以不接收
1)可以返回一个字符串、数字、列表、字典、函数..可以返回任何数据类型
2)只要有返回值,调用函数后就能接受到数据
3)一个程序中如果有多个return时,只执行第一个return
- 返回多个值
1)多个返回值一定要注意有几个返回值,就要用几个变量去接受
2)若一个变量去接受,则将多个返回值组成一个元组返回
3)函数的参数
- 形参:定义函数时 传入的参数 称为形式参数
- 实参:调用函数的时候,传入的参数
def func(c): #c为形参 print(c) return c b="苹果" ret=func(b) #b为实参 print(ret)
站在实参的角度
- 按照位置传参
- 按照关键字传传参
def func(x,y,z): print(x,y,z) return x result=func("小","x","haiou") #按位置传参 result1=func(x="小",y="小",z="海鸥") #按照关键字传参 result2=func("小",y="xiao",z="海鸥") #混合使用,关键字参数在位置参数的后面
站在形参的角度
- 按照位置传参
- *args 可以接收任意多个安位置传入的参数
- 默认参数 可以不传
- **kwargs 动态参数可以接收任意多个按照关键字传入的参数
def wahaha(*args): #将传入的多个参数组合成序列 print(args) #组合成一个元组 l=[1,2,3,4,5,6,7,8,9] wahaha(*l) #*l将序列打散传入
4)默认参数的陷阱
def func(l=[]): #设置一个默认参数 列表为可变数据类型 每次传参都在共享 l.append(1) #向列表中添加一个数 print(l) #输出内容 func() #调用一次参数之后 [1] func() #调用一次参数之后 [1,1] func() #调用一次参数之后 [1,1,1]
四、今日作业