昨日内容复习
文件处理
打开文件→操作文件→关闭文件
文件是不能修改的,但可以先创建一个新文件然后删除原文件再重命名新文件
例:
with open('你好', encoding='utf-8') as f, open('你好.bak', 'w', encoding='utf-8') as f2:
for line in f:
if '同学' in line:
line = line.replace('同学', '老师')
f2.write(line)
import os
os.remove('你好')# 删除文件
os.rename('你好.bak', '你好')# 重命名
1.打开文件
open(‘路径’,‘打开方式:r w a r+ w+ a+’,‘指定编码方式’)
2.操作文件
读:
read 一次性读
readlines一次性读,并且按行切分放表里
readline 一行行读
视频图片用rb打开 bytes 按字节读
for循环读(最好的读取方法)
写:
write方法
光标(文件指针):
seek:指定光标移动到某位置
tell:获取光标当前的位置
truncate:截取文件
3.关闭文件
close
今日内容
函数
小例子
s = '你好同学'
def my_len(): #自定义函数
i = 0
for k in s:
i = i+1
print(i)
my_len()
函数特点:
1.定义了函数之后,可以在任何需要他的地方调用
2.没有返回长度,只是单纯的打印
返回值return
s = '你好同学'
def my_len():
i = 0
for k in s:
i = i+1
return i
length = my_len()
print(length)
返回值的三种情况
1.没有返回值:默认返回NONE
没有return
只有return,结束一个函数。注:break只结束循环不结束函数
2.返回一个值
如果一个函数中有多个return,则只运行第一个
3.返回多个值
有多少个返回值就用多少个变量接收,不能多也不能少,但可以用一个变量接收,返回元祖
例:
def func():
return 1, 2
r1, r2 = func()
print(r1, r2)
形式参数与实际参数
def my_len(s): # 形式参数
i = 0
for k in s:
i = i+1
return i
length = my_len('nih') # 实际参数
print(length)
参数
1.没有参数
2.有一个参数
3.多个参数
例子:
def my_sum(a, b):
res = a+b
return res
resu = my_sum(1, 2)
print(resu)
默认参数
不写就是默认值,可以随时改
例子:
def classmate(name, sex = 'man'):
print('%s:%s' % (name, sex))
classmate('张三')
classmate('李四')
classmate('小芳', '女')
位置参数
def classmate(name, sex = 'man'):
print('%s:%s' % (name, sex))
classmate(sex='女', name='张三')
classmate('李四')
classmate('小芳', '女')
动态参数(args,默认参数,kwargs)
参数名前加*,接受的是按照位置传参,形成元祖
例子1
def my_sum(*args):
count = 0
for i in args:
count = count + i
return count
a = my_sum(1, 2, 3)
b = my_sum(1, 2, 3, 4)
print(a, b)
**kwargs可以接收a = …类型,接收按照关键字传参的值,形成字典
例子2
def func(**kwargs):
print(kwargs)
func(a=1, b=3, c=4)
func(a=1, b=3)
动态参数的另一种传参方式
def func(*args):
print(args)
li = [1, 2, 4, 5]
func(*li)
2
def func(**kwargs):
print(kwargs)
li = {'a': 1, 'b': 2}
func(**li)