文本写入与读取
题目描述
- 创建一个名为
student.txt的文件- 写入 3 名学生的信息(格式:姓名,年龄,成绩)
- 关闭文件后重新读取该文件,逐行打印学生信息
输出示例
读取到的学生信息:
姓名:张三,年龄:18,成绩:95
姓名:李四,年龄:19,成绩:88
姓名:王五,年龄:17,成绩:92
实现代码
python
# 步骤1:写入学生信息
students = [
"张三,18,95",
"李四,19,88",
"王五,17,92"
]
# 写入文件(w模式,自动创建/覆盖)
with open("student.txt", "w", encoding="utf-8") as file:
file.writelines(line + "\n" for line in students) # 每行添加换行符
# 步骤2:读取并打印学生信息
print("读取到的学生信息:")
with open("student.txt", "r", encoding="utf-8") as file:
for line in file:
name, age, score = line.strip().split(",") # 分割字符串
print(f"姓名:{name},年龄:{age},成绩:{score}")
文件内容追加与统计
题目描述
- 向上一题 的
student.txt中追加 2 名学生信息- 统计文件中所有学生的平均成绩
- 将平均成绩写入文件末尾(格式:
平均成绩:XX)
输出示例
所有学生平均成绩:92.2
最终 student.txt 内容:
张三,18,95
李四,19,88
王五,17,92
赵六,18,90
孙七,17,96
平均成绩:92.2
实现代码
python
# 步骤1:追加2名学生信息
new_students = [
"赵六,18,90",
"孙七,17,96"
]
with open("student.txt", "a", encoding="utf-8") as file:
file.writelines(line + "\n" for line in new_students)
# 步骤2:读取所有成绩并计算平均值
scores = []
with open("student.txt", "r", encoding="utf-8") as file:
for line in file:
line = line.strip()
if not line or "平均成绩" in line: # 跳过空行和已有平均成绩行
continue
_, _, score = line.split(",")
scores.append(float(score))
average = sum(scores) / len(scores)
print(f"所有学生平均成绩:{average:.1f}")
# 步骤3:将平均成绩追加到文件末尾
with open("student.txt", "a", encoding="utf-8") as file:
file.write(f"平均成绩:{average:.1f}\n")
基础异常处理
题目描述
编写一个程序,要求用户输入两个数字进行除法运算。处理除零异常和输入非数字的异常。
输出示例
请输入第一个数字:10
请输入第二个数字:0
错误:除数不能为零!
请输入第一个数字:10
请输入第二个数字:abc
错误:请输入有效的数字!
实现代码
python
def divide_numbers():
try:
# 获取用户输入
num1 = input("请输入第一个数字:")
num2 = input("请输入第二个数字:")
# 转换为浮点数
num1 = float(num1)
num2 = float(num2)
# 执行除法运算
result = num1 / num2
print(f"结果:{num1} / {num2} = {result}")
except ValueError:
print("错误:请输入有效的数字!")
except ZeroDivisionError:
print("错误:除数不能为零!")
# 测试函数
divide_numbers()
文件读取计数器
题目描述
读取文件并统计行数,使用 else 显示统计结果,finally 显示关闭文件。
输出示例
请输入文件名:data.txt
文件共有 5 行内容
文件已关闭,程序结束。
请输入文件名:nonexistent.txt
错误:文件不存在!
文件已关闭,程序结束。
实现代码
python
def file_line_counter():
file = None
try:
filename = input("请输入文件名:")
file = open(filename, 'r', encoding='utf-8')
lines = file.readlines()
line_count = len(lines)
except FileNotFoundError:
print("错误:文件不存在!")
else:
print(f"文件共有 {line_count} 行内容")
finally:
if file:
file.close()
print("文件已关闭,程序结束。")
# 测试函数
file_line_counter()