当前位置:首页>python>小白学python第67天之完成作业

小白学python第67天之完成作业

  • 2026-08-27 00:43:02
小白学python第67天之完成作业

2.12

完成作业

?

学前疑问

我们今天不学习新的知识点,只处理前面几天学习文件操作以及面向对象留下的作业,大家若是对作业解答有不同见解,都可以留言交流。

第63天

作业:

需求:批量修改文件名,既可添加指定字符串,又能删除指定字符串。

步骤:

① 设置添加删除字符串的的标识;

② 获取指定目录的所有文件;

③ 将原有文件名添加/删除指定字符串,构造新名字;

④ os.rename()重命名。

# 1、导入os模块import os# 2、定义一个要重命名的目录path = 'static'# 3、切换到上面指定的目录中os.chdir(path)# 5、定义一个标识,用于确认是添加字符还是删除字符flag = int(input('请输入您要执行的操作(1-添加字符,2-删除字符):'))# 4、对目录中的所有文件进行遍历输出 => os.listdir()for file in os.listdir():    # 6、判断我们要执行的操作(1-添加字符,2-删除字符)    if flag == 1:        # 01.txt => python-01.txt        newname = 'python-' + file        # 重命名操作        os.rename(file, newname)        print('文件批量重命名成功')    elif flag == 2:        # python-01.txt => 01.txt        index = len('python-')        newname = file[index]        # 重命名操作        os.rename(file, newname)        print('文件批量重命名成功')    else:        print('输入标识不正确,请重新输入...')

第64天

作业:

场景描述:

假设你需要开发一个简单的学生成绩统计程序,主要功能是读取一组分数,然后计算平均分。未来,这个程序有可能需要扩展,例如增加计算中位数、排序或图形化显示成绩分布图等功能。

题目:

在项目初期,从长期可维护性和扩展性的角度出发,选择哪种编程范式作为基础架构更为合适?()

A. 面向过程编程

B. 面向对象编程

C. 两者差别不大,任意选择即可

D. 应根据首次开发的功能是否复杂来决定

答案:B

分析:

面向对象范式的优势在于其封装性和模块化。你可以创建一个 GradeAnalyzer(成绩分析器)类,将计算平均分、中位数等功能作为该类的方法。当需要新增功能(如排序)时,只需在类中添加一个新的方法即可,不会扰乱已有的计算平均分的逻辑。这种结构使得程序更容易应对变化。

面向过程范式虽然实现初始的“计算平均分”功能非常直接高效,但当需要增加“排序”或“图形显示”等新功能时,往往需要修改主流程或数据结构,导致代码越来越复杂,难以维护。

其他选项为何不准确?

A. 面向过程编程:只考虑了当前需求的简单性,忽略了未来扩展带来的维护成本,不适合作为有扩展预期项目的长期架构选择。

C. 两者差别不大:这种说法是错误的。两种范式在代码组织、扩展性和适用场景上存在根本性差异,直接影响项目的长期可维护性。

D. 应根据首次开发的功能是否复杂来决定:这是短视的决定。软件架构的价值恰恰体现在对未来变化的适应能力上。即使初始功能简单,如果预见到变化,也应选择更灵活的范式。

第65天

作业:

定义一个简单的学生类,要求:

① 定义一个名为 Student的类;

② 类中定义一个方法 study,该方法打印:"我正在学习";

③ 类中定义另一个方法 play,该方法打印:"我正在玩游戏";

④ 创建 Student类的对象,并分别调用这两个方法。

# 1. 定义Student类classStudent:    # 定义学习方法    def study(self):        print("我正在学习")    # 定义玩耍方法    def play(self):        print("我正在玩游戏")# 2. 创建Student类的对象student1 = Student()# 3. 调用对象的方法student1.study()  # 输出:我正在学习student1.play()   # 输出:我正在玩游戏

第66天

作业:

学生信息动态管理,题目要求:

(1)创建一个空的类 Student。

(2)动态地为这个类的一个实例(对象)添加以下两个属性:

name(姓名),值为 "小明"

age(年龄),值为 15

(3)编写代码,检查该对象是否拥有 name和 grade属性。

(4)最后,获取并打印出 name和 age属性的值。对于不存在的 grade属性,在尝试获取时给出一个默认提示,例如 "属性不存在"。

# 1. 创建一个空的Student类classStudent:    pass# 2. 实例化一个对象stu = Student()# 3. 使用setattr()动态地为对象添加属性setattr(stu, 'name', '小明')setattr(stu, 'age', 15)# 4. 使用hasattr()检查属性是否存在print("stu对象有name属性吗?", hasattr(stu, 'name')) print("stu对象有grade属性吗?", hasattr(stu, 'grade')) # 5. 使用getattr()获取属性值# 获取已存在的属性name_value = getattr(stu, 'name')print(f"学生的姓名是:{name_value}") # 获取不存在的属性,并提供默认值grade_value = getattr(stu, 'grade', '属性不存在')print(f"学生的成绩是:{grade_value}") # 直接访问动态添加的属性(与使用getattr效果相同)print(f"学生的年龄是:{stu.age}") 

今日学习完毕,课后作业:  

有空的小伙伴,可以参考代码运行,还是建议不看着代码自己手打,学习效率更好。明天继续学习新的python知识点。

最新文章

随机文章