代码:
import os
def traverse(path):
# 先判断路径是否存在
if not os.path.exists(path):
print("路径不存在!")
return
for item in os.listdir(path):
item_path = os.path.join(path, item)
if os.path.isfile(item_path):
print(f"文件: {item_path}")
elif os.path.isdir(item_path):
print(f"文件夹: {item_path}")
traverse(item_path) # 递归遍历子文件夹
# 调用示例
traverse("./")
import hashlib
def encrypt(pwd):
# 使用MD5加密,添加盐值增强安全性
salt = "my_salt"
return hashlib.md5((pwd + salt).encode()).hexdigest()
def register():
user = input("用户名: ")
pwd = input("密码: ")
# 检查用户名是否已存在
try:
with open("user.txt", "r") as f:
for line in f:
u, _ = line.strip().split(":")
if u == user:
print("用户名已存在!")
return
except FileNotFoundError:
pass # 文件不存在,直接注册
# 写入文件
with open("user.txt", "a") as f:
f.write(f"{user}:{encrypt(pwd)}\n")
print("注册成功")
def login():
user = input("用户名: ")
pwd = input("密码: ")
try:
with open("user.txt", "r") as f:
for line in f:
u, p = line.strip().split(":")
if u == user and p == encrypt(pwd):
print("登录成功")
return
print("用户名或密码错误")
except FileNotFoundError:
print("用户不存在,请先注册")
# 调用示例
while True:
choice = input("1.注册 2.登录 3.退出: ")
if choice == "1":
register()
elif choice == "2":
login()
elif choice == "3":
break
else:
print("输入错误,请重新选择!")
class Student:
def __init__(self, name, score, age=0, gender="未知"):
self.name = name
self.score = score
self.age = age
self.gender = gender
def __repr__(self):
return f"姓名:{self.name}, 年龄:{self.age}, 性别:{self.gender}, 成绩:{self.score}"
def student_manager():
students = []
while True:
name = input("输入学生姓名(输入q退出): ")
if name == "q":
break
try:
score = float(input("输入成绩: "))
age = int(input("输入年龄: "))
gender = input("输入性别: ")
students.append(Student(name, score, age, gender))
except ValueError:
print("输入格式错误,请重新输入!")
# 按成绩从高到低排序
students.sort(key=lambda s: s.score, reverse=True)
print("\n按成绩排序结果:")
for s in students:
print(s)
# 保存到文件
with open("students.txt", "w", encoding="utf-8") as f:
for s in students:
f.write(f"{s.name},{s.score},{s.age},{s.gender}\n")
print("信息已保存到students.txt")
# 调用示例
student_manager()
运行结果:

15

被折叠的 条评论
为什么被折叠?



