1.使用os和os.path以及函数的递归完成:
给出一个路径,遍历当前路径所有的文件及文件夹
打印输出所有的文件(遇到文件输出路径,遇到文件夹继续进文件夹)
python
import os
def traverse_path(path):
# 检查路径是否存在
if not os.path.exists(path):
print(f"错误:路径 '{path}' 不存在。")
return
# 遍历当前路径下的所有条目
for entry in os.listdir(path):
# 构建条目的完整路径
full_path = os.path.join(path, entry)
# 如果是文件,打印其路径
if os.path.isfile(full_path):
print(f"文件: {full_path}")
# 如果是文件夹,递归调用自身继续遍历
elif os.path.isdir(full_path):
traverse_path(full_path)
if __name__ == "__main__":
# 替换为你要遍历的路径,'D:/python/code' 表示当前目录
target_path = 'D:/Python/code'
print(f"开始遍历路径: {target_path}\n")
traverse_path(target_path)

2.使用加密模块及IO模拟登录功能,要求使用文件模拟数据库存储用户名和密码。
python
import hashlib
import os
# 定义模拟数据库的文件路径
DB_FILE = "users.txt"
def hash_password(password):
return hashlib.sha256(password.encode()).hexdigest()
def register_user(username, password):
# 检查用户是否已存在
if os.path.exists(DB_FILE):
with open(DB_FILE, 'r', encoding='utf-8') as f:
for line in f:
existing_user, _ = line.strip().split(':')
if existing_user == username:
print("注册失败:用户名已存在。")
return
# 加密密码并写入文件
hashed_pwd = hash_password(password)
with open(DB_FILE, 'a', encoding='utf-8') as f:
f.write(f"{username}:{hashed_pwd}\n")
print("注册成功!")
def login_user(username, password):
if not os.path.exists(DB_FILE):
print("登录失败:用户数据库不存在。")
return False
hashed_pwd = hash_password(password)
with open(DB_FILE, 'r', encoding='utf-8') as f:
for line in f:
stored_user, stored_pwd = line.strip().split(':')
if stored_user == username and stored_pwd == hashed_pwd:
print("登录成功!")
return True
print("登录失败:用户名或密码错误。")
return False
# 示例调用
if __name__ == "__main__":
print("=== 用户注册/登录系统 ===")
while True:
choice = input("请选择操作 (1-注册, 2-登录, 3-退出): ")
if choice == '1':
username = input("输入用户名: ")
password = input("输入密码: ")
register_user(username, password)
elif choice == '2':
username = input("输入用户名: ")
password = input("输入密码: ")
login_user(username, password)
elif choice == '3':
break
else:
print("无效选择,请重试。")

3.使用面向对象编程完成学生信息录入功能,数据存储在本地文件txt中,并读取学生信息并按照成绩进行排序,学生其他属性自行规划
python
import json
# 补充缺失的os模块导入(修复NameError错误)
import os
# 定义存储学生信息的文件路径
STUDENT_FILE = "students.txt"
class Student:
def __init__(self, student_id, name, score):
self.student_id = student_id
self.name = name
self.score = score
def to_dict(self):
return {
"student_id": self.student_id,
"name": self.name,
"score": self.score
}
@classmethod
def from_dict(cls, data):
return cls(data["student_id"], data["name"], data["score"])
def add_student():
try:
student_id = input("输入学号: ")
# 校验学号非空
if not student_id.strip():
print("错误:学号不能为空!")
return
name = input("输入姓名: ")
if not name.strip():
print("错误:姓名不能为空!")
return
score = float(input("输入成绩: "))
# 校验成绩范围
if score < 0 or score > 100:
print("错误:成绩需在0-100之间!")
return
student = Student(student_id, name, score)
# 读取现有学生信息
students = load_students()
# 检查学号是否重复
for s in students:
if s.student_id == student_id:
print(f"错误:学号{student_id}已存在!")
return
students.append(student)
# 保存更新后的学生信息
save_students(students)
print("学生信息添加成功!")
except ValueError:
print("错误:成绩必须是数字!")
except Exception as e:
print(f"添加失败:{str(e)}")
def load_students():
# 修复os模块未导入导致的NameError
if not os.path.exists(STUDENT_FILE):
return []
try:
with open(STUDENT_FILE, 'r', encoding='utf-8') as f:
data = json.load(f)
return [Student.from_dict(item) for item in data]
except json.JSONDecodeError:
print("警告:学生信息文件格式错误,已重置为空列表!")
return []
except Exception as e:
print(f"加载学生信息失败:{str(e)}")
return []
def save_students(students):
try:
data = [student.to_dict() for student in students]
with open(STUDENT_FILE, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
except Exception as e:
print(f"保存学生信息失败:{str(e)}")
def sort_students_by_score():
students = load_students()
if not students:
print("暂无学生信息。")
return
# 按成绩降序排序
sorted_students = sorted(students, key=lambda x: x.score, reverse=True)
print("\n=== 学生成绩排名(降序) ===")
for i, student in enumerate(sorted_students, 1):
print(f"{i}. 学号: {student.student_id}, 姓名: {student.name}, 成绩: {student.score}")
# 示例调用
if __name__ == "__main__":
print("=== 学生信息管理系统 ===")
while True:
choice = input("\n请选择操作 (1-添加学生, 2-查看成绩排名, 3-退出): ")
if choice == '1':
add_student()
elif choice == '2':
sort_students_by_score()
elif choice == '3':
print("退出系统,再见!")
break
else:
print("无效选择,请输入1、2或3!")
