我们今天不学习新的知识点,只处理前面3天学习函数以及文件基本操作留下的作业,大家若是对作业解答有不同见解,都可以留言交流。
作业:
给定一个整数列表 numbers和一个字符串列表 students,请使用 lambda 表达式 完成以下任务:
numbers = [1, 5, -2, 10, -8, 7]students = ["Alice", "Bob", "Charlie", "David"]
(1)过滤负数:使用 filter()函数和 lambda 表达式,从 numbers中筛选出所有非负数(大于等于0的数)。
(2)计算平方:使用 map()函数和 lambda 表达式,计算 numbers中每个元素的平方,生成新列表。
(3)按名字长度排序:使用 sorted()函数和 lambda 表达式,将 students列表按照名字字符串的长度进行升序排序。
(4)找最长名字:使用 max()函数和 lambda 表达式,找出 students列表中名字最长的学生。
# 初始数据numbers = [1, 5, -2, 10, -8, 7]students = ["Alice", "Bob", "Charlie", "David"]# 1. 过滤出非负数non_negative = list(filter(lambda x: x >= 0, numbers))print("非负数:", non_negative) # 2. 计算每个数字的平方squares = list(map(lambda x: x ** 2, numbers))print("平方列表:", squares) # 3. 按名字长度排序sorted_by_length = sorted(students, key=lambda name: len(name))print("按长度排序:", sorted_by_length) # 4. 找出名字最长的学生longest_name = max(students, key=lambda name: len(name))print("最长的名字:", longest_name)
作业:
给定一个包含若干整数的列表 numbers = [12, 5, -8, 0, 21, -15, 7, -3],请依次完成以下操作,并打印结果:
(1)转换绝对值:使用 map()函数,将列表中的每个数字转换为其绝对值。
(2)过滤正数:使用 filter()函数,筛选出所有大于0的正数。
(3)计算乘积:使用 reduce()函数,计算过滤后列表中所有数字的乘积。
from functools import reduce# 初始数据numbers = [12, 5, -8, 0, 21, -15, 7, -3]# 1. 使用 map() 转换绝对值abs_numbers = list(map(abs, numbers))print("绝对值列表:", abs_numbers) # 2. 使用 filter() 过滤出正数(注意:0不是正数)positive_numbers = list(filter(lambda x: x > 0, abs_numbers))print("正数列表:", positive_numbers) # 3. 使用 reduce() 计算正数列表中所有元素的乘积product = reduce(lambda x, y: x * y, positive_numbers)print("所有正数的乘积:", product)
作业:
需求:用户输入当前目录下任意文件名,完成对该文件的备份功能(备份文件名为xx[备份]后缀,例如:test[备份].txt)。
实现思路:
① 接收用户输入的文件名
② 规划备份文件名
③ 备份文件写入数据
# 1、接收用户输入的文件名(要备份的文件名)oldname = input('请输入要备份的文件名称:') # python.py# 2、规划备份文件名(python[备份].py)# 搜索点号index = oldname.rfind('.')# 返回文件名和文件后缀name = oldname[:index]postfix = oldname[index:]newname = name + '[备份]' + postfix# 3、对文件进行备份操作old_f = open(oldname, 'rb')new_f = open(newname, 'wb')# 读取源文件内容写入新文件while True: content = old_f.read(1024) if len(content) == 0: break new_f.write(content)# 4、关闭文件old_f.close()new_f.close()
今日学习完毕,课后作业:
有空的小伙伴,可以参考代码运行,还是建议不看着代码自己手打,学习效率更好。明天继续学习新的python知识点。