python第三次作业
·
1.第1题(IO流‑文本)
编写程序:读取 article.txt ,统计文件中英文单词出现总数量(只统计单词,忽略数字、标点符号),
并将统计结果写入 result.txt 。
要求:使用 with 语法,文件编码 utf‑8 。
代码:
# 定义所有标点符号,不使用string/re模块
punctuation = r'''!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~'''
# 读取文件 with语法 + utf-8编码
with open("article.txt", "r", encoding="utf-8") as f:
content = f.read()
# 全部标点替换成空格
for char in punctuation:
content = content.replace(char, " ")
# 按空格分割字符串
word_list = content.split()
count = 0
# 判断:只统计纯英文单词,跳过带数字的内容
for word in word_list:
# 判断单词里面是否全部是字母
if word.isalpha():
count += 1
# 写入结果文件
with open("result.txt", "w", encoding="utf-8") as fw:
fw.write(f"英文单词总数量:{count}")
print("统计完成,结果写入result.txt")
运行结果:

2.第2题(IO流‑读写模式综合)
现有文件 record.log ,编写代码:
1. 如果文件不存在则创建;
2. 在文件末尾追加一行: 2026‑07‑27 操作完成 ;
3. 追加完成后读取文件全部内容打印到控制台。
提示:注意光标位置,选对打开模式。
代码:
# 日志文件操作
# a+ 追加读写模式:文件不存在自动创建,写入在末尾,读取需要调整光标
with open("record.log", "a+", encoding="utf-8") as f:
# 2. 末尾追加内容
f.write("2026‑07‑27 操作完成\n")
# 把文件指针移到开头,才能读取全部内容
f.seek(0)
# 读取全部内容
content = f.read()
# 打印到控制台
print(content)
运行结果:

3.第3题(模块‑自定义模块)
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):
area = math.pi * r ** 2
return area
# 计算圆周长
def calc_circum(r):
circum = 2 * math.pi * r
return circum
main.py
# ====== 导入方式1:import 模块名 ======
import math_tool
r1 = 3
area1 = math_tool.calc_area(r1)
circum1 = math_tool.calc_circum(r1)
print("方式1调用结果:")
print(f"半径{r1},圆面积:{area1:.2f}")
print(f"半径{r1},圆周长:{circum1:.2f}")
print("-" * 30)
# ====== 导入方式2:from 模块 import 指定函数 ======
from math_tool import calc_area, calc_circum
r2 = 5
area2 = calc_area(r2)
circum2 = calc_circum(r2)
print("方式2调用结果:")
print(f"半径{r2},圆面积:{area2:.2f}")
print(f"半径{r2},圆周长:{circum2:.2f}")
运行结果:

4.第4题(模块‑标准库os模块)
使用 os 标准库完成:
1. 遍历当前文件夹,打印所有后缀为 .txt 的文件名;
2. 创建文件夹 backup ;
3. 加判断条件如果backup文件夹已存在不要报错。
代码:
import os
# 1. 遍历当前文件夹,打印所有 .txt 文件名
current_dir = os.getcwd()
file_list = os.listdir(current_dir)
for name in file_list:
# 判断后缀是否为 .txt
if name.endswith(".txt"):
print("txt文件:",name)
# 2、3:创建backup文件夹,存在则不报错
if not os.path.exists("backup"):
os.mkdir("backup")
print("backup文件夹处理完成")
运行结果:

5.第5题
使用os和os.path以及函数的递归完成:
给出一个路径,遍历当前路径所有的文件及文件夹
打印输出所有的文件(遇到文件输出路径,遇到文件夹继续进文件夹)
代码:
import os
def traverse_dir(path):
# 遍历当前目录下所有内容
for name in os.listdir(path):
# 拼接完整路径
full_path = os.path.join(path, name)
# 判断是否为文件夹
if os.path.isdir(full_path):
# 文件夹:递归继续遍历
traverse_dir(full_path)
else:
# 文件:打印完整路径
print(full_path)
# 调用入口,填写你要遍历的路径
if __name__ == "__main__":
target_path = r"D:\pythoncode\6.OOP"
traverse_dir(target_path)
运行结果:
更多推荐



所有评论(0)