Python第三次作业
·
第一题:(IO流‑文本)
编写程序:读取 article.txt ,统计文件中英文单词出现总数量(只统计单词,忽略数字、标点符号),并将统计结果写入 result.txt 。
要求:使用 with 语法,文件编码 utf‑8 。
【代码】
import string
# 1.读取文件统计单词
word_total = 0
with open("article.txt", "r", encoding="utf-8") as f_read:
content = f_read.read()
# 清理:去掉标点、数字
punctuation = string.punctuation # 所有英文标点
digits = "0123456789"
clean_content = content
for char in punctuation + digits:
clean_content = clean_content.replace(char, " ")
# 分割单词并过滤空元素
word_list = [word for word in clean_content.split() if word.strip()]
word_total = len(word_list)
# 2.写入结果到result.txt
with open("result.txt", "w", encoding="utf-8") as f_write:
f_write.write(f"文章中英文单词总数量:{word_total}")
print(f"统计完成,单词总数:{word_total},已写入result.txt")
【运行截图】


第二题:(IO流‑读写模式综合)
现有文件 record.log ,编写代码:
1. 如果文件不存在则创建;
2. 在文件末尾追加一行: 2026‑07‑27 操作完成 ;
3. 追加完成后读取文件全部内容打印到控制台。
提示:注意光标位置,选对打开模式。
【代码】
import os
# 追加一行日志
with open("record.log", "a", encoding="utf-8") as f_append:
f_append.write("2026-07-27 操作完成\n") # \n换行
# r模式读取全部内容并打印
with open("record.log", "r", encoding="utf-8") as f_read:
all_content = f_read.read()
print("record.log文件全部内容:")
print(all_content)
【运行截图】


第三题:(模块‑自定义模块)
1. 创建自定义模块 math_tool.py ,内部实现两个函数:
- calc_area(r) :计算圆面积
- calc_circum(r) :计算圆周长
2. 在另一个文件 main.py ,用两种不同导入方式调用这两个函数:
- 方式1: import math_tool
- 方式2: from math_tool import calc_area, calc_circum
写出两个文件完整代码。
【代码】
# math_tool.py
import math
# 计算圆面积
def calc_area(r):
if r <= 0:
return "半径不能为负数或0"
return math.pi * r ** 2
# 计算圆周长
def calc_circum(r):
if r <= 0:
return "半径不能为负数或0"
return 2 * math.pi * r
# main.py
import math_tool
r = 5
area1 = math_tool.calc_area(r)
circum1 = math_tool.calc_circum(r)
print("方式1调用结果:")
print(f"半径{r} 面积:{area1:.2f},周长:{circum1:.2f}")
print("-" * 50)
# ========== 导入方式2:from 模块 import 指定函数 ==========
from math_tool import calc_area, calc_circum
r2 = 3
area2 = calc_area(r2)
circum2 = calc_circum(r2)
print("方式2调用结果:")
print(f"半径{r2} 面积:{area2:.2f},周长:{circum2:.2f}")
【运行截图】

第四题:(模块‑标准库os模块)
使用 os 标准库完成:
1. 遍历当前文件夹,打印所有后缀为 .txt 的文件名;
2. 创建文件夹 backup ;
3. 加判断条件如果backup文件夹已存在不要报错。
【代码】
import os
# 1.遍历当前文件夹,打印所有.txt后缀文件
print("当前目录下所有txt文件:")
current_path = os.getcwd()
all_files = os.listdir(current_path)
for file_name in all_files:
if file_name.endswith(".txt"):
print(file_name)
print("-" * 30)
# 2.创建backup文件夹,存在则跳过不报错
folder_name = "backup"
if not os.path.exists(folder_name):
os.mkdir(folder_name)
print(f"文件夹 {folder_name} 创建成功")
else:
print(f"文件夹 {folder_name} 已存在,无需重复创建")
【运行截图】
(因为record文件为.log后缀名,所以并没有算入其中)

第五题:
使用os和os.path以及函数的递归完成:
给出一个路径,遍历当前路径所有的文件及文件夹
打印输出所有的文件(遇到文件输出路径,遇到文件夹继续进文件夹)
【代码】
import os
def traverse_all_files(folder_path):
# 遍历该路径下所有子项
for item in os.listdir(folder_path):
# 拼接完整路径
full_path = os.path.join(folder_path, item)
# 判断是否为文件夹
if os.path.isdir(full_path):
# 是文件夹:递归继续遍历
traverse_all_files(full_path)
else:
# 是文件:直接打印完整路径
print(full_path)
# 调用:传入当前工作目录,也可以手动写绝对路径如 r"D:/test"
if __name__ == "__main__":
root_dir = os.getcwd()
print("递归遍历所有文件路径:")
traverse_all_files(root_dir)
【运行截图】

更多推荐


所有评论(0)