Python学习 Day5

递归

一、特点 1、函数内部自己调用自己 2、必须有出口

举例: image.png

Lambda表达式

也叫匿名函数

1、作用

如果一个函数右一个返回值,并且只有一句代码,可以使用lambda简化

2、语法

lambda 参数列表 : 表达式

lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适用 lambda表达式能接受任何数量的参数但只能返回一个表达式的值

image.png

举例:

image.png

3、lambda表达式的参数形式

1、无参数 image.png 2、一个参数 image.png 3、默认参数 image.png 4、可变参数:*args image.png 这里的可变参数传入到lamdba表达式中,返回值为元组 5、可变参数:**kwargs

image.png

4、lambda表达式的应用

1、带判断的lamnda image.png 2、列表数据按字典key的值排序 image.png

高阶函数

把函数作为参数传入,这样的函数称为高阶函数。 image.png

image.png

内置的高阶函数

1、map(func,lst)

map(func,lst),将传入的函数变量func作用到lst变量的每个元素,并将结果组成新的列表(python2)/迭代器(python3)返回 image.png

2、reduce()

reduce(func,lst),其中func必须右两个参数。每次func计算的结果继续和序列的下一个元素做累积计算。注意:reduce()传入的参数func必须接收两个参数 image.png

3、filter()

filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,如果要转换为列表,可以使用list()来转换 image.png

文件操作

作用:就是把一些内容(数据)存储起来,可以让程序下一次执行的时候直接使用,而不必重新制作一份,省时省力

文件操作步骤: 1、打开文件 2、读写等操作 3、关闭文件

1、打开文件

在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件,语法为:

open(name,mode)

name:是要打开的目标文件名的字符串(可以包含文件所在路径) mode:设置打开文件的模式(访问模式):只读、写入、追加等。mode参数省略时,表示访问模式是 r

image.png

mode访问模式:(主访问模式的特点:r,w,a)

r:以只读方式打开文件,文件的指针将会放在文件的开头。这是默认模式.文件不存在会报错,不支持写入操作,只读,所有带r的都会和这个一样,文件不存在报错 rb:以二进制打开一个文件用于只读。文件的指针将会放在文件的开头。这是默认模式 r+:打开一个文件用于读写,文件指针将会放在文件的开头。 rb+:以二进制打开一个文件用于读写。文件的指针将会放在文件的开头。

w:打开一个文件只用于写,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件,文件指针在开头 wb:以二进制打开一个文件只用于写入,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 w+:打开一个文件用于读写,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件 wb+:以二进制打开一个文件用于读写,如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件

a:打开一个文件用于追加。如果文件已存在,文件指针会放在文件的结尾。也就是说,新的内容将会写入到已有内容之后。如果文件不存在,创建新文件写入 ab:以二进制打开一个文件用于追加。如果文件已存在,文件指针会放在文件的结尾。也就是说,新的内容将会写入到已有内容之后。如果文件不存在,创建新文件写入 a+:打开一个文件用于读写。如果文件已存在,文件指针会放在文件的结尾。也就是说,新的内容将会写入到已有内容之后。如果文件不存在,创建新文件写入 ab+:以二进制打开一个文件用于追加。如果文件已存在,文件指针会放在文件的结尾。如果文件不存在,创建新文件写入

r+ w+ a+区别: 1、r+没有该文件会报错,文件指针在开头所以能读取出数据 2、w+没有文件会创建文件,文件指针在开头,用新内容覆盖原内容 3、a+没有文件会创建文件,文件指针在末尾,无法读取数据(文件指针后面无数据)

2、读取文件

1、read()

文件对象.read(num)

num表示要从文件中读取的数据长度(单位是字节),如果没有传入num,那么就表示读取文件中所有数据 image.png

2、readlines()

readlines()可以按照行的方式把整个文件中的内容进行一次读取,并返回的是一个列表,其中每一行的数据为一个元素 image.png

3、readline()

readline()一次只读一行内容 image.png

4、seek()

作用:用来移动文件指针

文件对象.seek(偏移量,起始位置)

起始位置: 0:文件开头 1:当前位置 2:文件结尾

3、文件备份

`#备份文件 #1、输入目标文件名 old_name = input("请输入你要备份的文件名:") #2、规划文件名 #2.1 提取后缀,找 . 最右侧的点才是后缀的点

index = old_name.rfind('.')#返回的是所在的index

#判断文件名是否有效 if index > 0: #提取后缀 postfix = old_name[index:] #print(res) #2.2 组织新名字 = 原名字 + [备份]+后缀 #原名字就是字符串中的一部分子串 -- 切片 [开始位置:结束位置:步长] #print(old_name[:index]) new_name=old_name[:index]+'[备份]'+postfix print(new_name) #3、备份文件写入数据 #打开原文件 和 新文件 old_file = open(old_name,'rb') new_file = open(new_name,'wb') #原文件读取,备份文件写入 #如果不确定文件的大小,循环读取写入,当读取的数据没有了终止循环 while True: con = old_file.read(1024) #读取的数据没有了终止循环 if len(con) == 0: break new_file.write(con) #关闭文件 old_file.close() new_file.close()`

4、文件和文件夹的操作

在Python中文件和文件夹的操作要借助os模块里面的相关功能,具体步骤如下

1、导入os模块

import os

2、使用os模块相关功能

os.函数名()

4.1、文件重命名

os.rename(目标文件名,新文件名)

4.2、删除文件

os.remove(目标文件名)

4.3、创建文件夹

os.mkdir(文件夹名称)

4.4、删除文件夹

os.rmdir(文件夹名称)

4.5、获取当前目录

os.getcwd()

4.6、改变默认目录

os.chdir(目录)

4.7、获取目录列表

作用:获取某个文件夹下所有文件,返回一个列表 os.listdir(目录)

4.8、应用案例

批量重命名文件,添加或删除

` #将当前目录下的所有文件重命名为Python_XXXX,或将某符合格式的文件名删除 import os

#获取当前目录下所有文件名 file_list = os.listdir()

#构造条件的数据 flag = 2

#构建名字

for i in file_list: if flag == 1: new_name = 'Python_'+ i

▼
text
复制代码
#重命名 os.rename(i,new_name) elif flag == 2: num = len('python_') new_name = i[num:] os.rename(i,new_name)

`

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP