函数的应用
1 下图是一个简易的学生信息管理系统:
分别定义添加,展示,删除,保存学生信息的四个函数,并利用csv文件的读取与写入来完成学生信息的展示与保存工作
数据存放在文件内,功能包含添加学生信息 删除学生信息、查看学生信息等。为方便起见,功能选择采用菜单方式,根据选择的菜单号执行对应的功能,每个菜单所展示的功能都可以用函数进行实现。 学生信息保存在一个字典结构中,字典每一项存储了一个学生的信息,包括:学号、姓名、性别、班级、电话,如下表所示。从文件读入的信息可以结合字典进行学生信息的存储。
问题 1:文件读写错误在读取和写入 CSV 文件时,可能会出现文件路径错误、权限问题或者读写格式不正确导致数据丢失或损坏。解决办法:仔细检查文件路径是否正确,确保有足够的权限进行读写操作。对于 CSV 文件的读写,要严格按照 CSV 的格式规范进行处理。
问题 2:数据类型转换错误从 CSV 文件读取的数据可能是字符串类型,在进行后续操作时需要进行数据类型的转换,可能会出现转换错误。解决办法:在进行数据类型转换时,添加适当的错误处理代码,以应对无法转换的情况。
问题 3:函数逻辑错误例如,在添加、删除或展示学生信息的函数中,可能会出现逻辑漏洞,导致数据处理不正确。解决办法:在编写函数前,详细设计函数的逻辑流程,并通过多种测试用例进行验证。
问题 4:字典操作错误在对存储学生信息的字典进行操作时,可能会出现键值错误、重复添加等问题。解决办法:在操作字典前,先检查键是否存在,避免重复添加相同键的学生信息。
2 下图是一个使用递归函数生成杨辉三角的图形:
问题 1:递归边界条件错误递归函数如果没有正确设置边界条件,可能会导致无限递归,造成程序崩溃。解决办法:明确递归的终止条件,并在函数中正确判断和处理。
问题 2:空间复杂度问题递归生成杨辉三角可能会消耗较多的栈空间,对于较大规模的计算可能会导致栈溢出。解决办法:考虑使用迭代的方式来实现,或者优化递归算法以减少空间消耗。
(1)迭代法:
问题 :内存占用过大 如果要生成的行数非常多,可能会占用大量内存来存储整个杨辉三角。
解决办法:可以根据实际需求,只生成和返回需要的部分行,或者使用更节省内存的数据结构,如生成器
(2)生成器方法: