我们今天不学习新的知识点,只处理前面几天学习面向对象留下的作业,大家若是对作业解答有不同见解,都可以留言交流。
日期计算与文件检查,题目要求:
请编写一个Python程序,依次完成以下两个独立的任务,每个任务需使用指定的内置模块:
(1)使用 datetime模块:计算并打印 昨天的日期,格式为 “年-月-日”(例如:2026-02-10)。
(2)使用 os模块:检查当前目录下是否存在一个名为 example.txt的文件,并根据检查结果打印出 "文件存在"或 "文件不存在"。
# 1. 导入所需的内置模块import datetimeimport os# 任务1:使用datetime模块获取昨天的日期def task_datetime(): # 获取当前日期 today = datetime.date.today() # 计算昨天的日期:当前日期减去一天的时间间隔 yesterday = today - datetime.timedelta(days=1) # 格式化输出 print(f"昨天的日期是: {yesterday}")# 任务2:使用os模块检查文件是否存在def task_os(): # 定义要检查的文件名 filename = "example.txt" # 使用os.path.exists()函数判断文件是否存在 if os.path.exists(filename): print("文件存在") else: print("文件不存在")# 主程序:执行两个任务if __name__ == '__main__': print("=== 任务1:日期计算 ===") task_datetime() print("\n=== 任务2:文件检查 ===") # \n 用于在输出中换行,使结果更清晰 task_os()
创建并使用一个数学工具模块,题目要求:
请你完成以下两个任务:
(1)创建一个自定义模块:
① 模块文件名:math_tools.py
② 在模块中定义两个函数:
add(a, b):接收两个数字,返回它们的和。
multiply(a, b):接收两个数字,返回它们的积。
(2)编写主程序并使用该模块:
① 主程序文件名:main.py
② 在主程序中,导入 你刚刚创建的 math_tools模块。
③ 调用模块中的函数,计算 10 加 20,以及 5 乘 8 的结果,并将结果打印出来。
# math_tools.py# 这是一个自定义的数学工具模块def add(a, b): """返回两个数的和""" return a + bdef multiply(a, b): """返回两个数的积""" return a * b
# main.py# 导入自定义模块 math_toolsimport math_tools# 使用模块中的函数进行计算result_add = math_tools.add(10, 20)result_multiply = math_tools.multiply(5, 8)# 打印结果print(f"10 + 20 = {result_add}")print(f"5 * 8 = {result_multiply}")
创建一个数学工具包,题目要求:
(1)创建一个名为 math_tools的包。
① 该包应包含一个 __init__.py文件(可以为空)。
② 在包内创建两个模块:
basic_ops.py:包含一个计算两数之和的函数 add(a, b)。
advanced_ops.py:包含一个计算两数乘积的函数 multiply(a, b)。
(2)编写主程序:在主程序 main.py中,从 math_tools包中导入这两个模块,并调用函数计算 (5 + 10) * 2的值,然后打印结果。
第一步:创建包和模块文件
首先,建立如下所示的目录和文件结构。关键是包含 __init__.py文件的 math_tools文件夹,这标志着它是一个Python包。
你的项目目录/│├── math_tools/ # 包目录│ ├── __init__.py # 包的初始化文件(必需)│ ├── basic_ops.py # 模块1:基础操作│ └── advanced_ops.py # 模块2:高级操作│└── main.py # 主程序
第二步:编写模块代码
def add(a, b): """返回两个数的和""" return a + b
math_tools/advanced_ops.py
def multiply(a, b): """返回两个数的积""" return a * b
# 此文件可以为空,但必须存在以标识math_tools为一个包。# 未来也可在此定义包的公共接口,例如:# from .basic_ops import add# from .advanced_ops import multiply
第三步:编写主程序
# 从math_tools包中导入具体的模块from math_tools import basic_ops, advanced_ops# 使用包中模块的函数进行计算sum_result = basic_ops.add(5, 10)final_result = advanced_ops.multiply(sum_result, 2)print(f"(5 + 10) * 2 = {final_result}") # 输出: (5 + 10) * 2 = 30
(另一种常见的导入方式是 import math_tools.basic_ops,调用时则需写全路径 math_tools.basic_ops.add(5, 10)。)
今日学习完毕,课后作业:
有空的小伙伴,可以参考代码运行,还是建议不看着代码自己手打,学习效率更好。明天继续学习新的python知识点。