小明: 嘿,小李!最近学校要更新教材发放管理系统,听说你对Python很擅长,能帮我设计一个吗?
小李: 当然可以!我们可以先从基础功能开始,比如记录学生信息和教材分配情况。
小明: 那我们怎么组织这些数据呢?
小李: 我建议用字典存储每个学生的教材信息,键是学号,值是一个列表包含教材名称和数量。
students = {
"S001": ["Math", 1],
"S002": ["English", 2],
"S003": ["Science", 1]
}
小明: 这样确实方便查询。那如果我们要展示所有学生的教材分配情况呢?
小李: 可以遍历字典并打印出来,不过为了直观,我们可以排序后显示,按教材数量从多到少排列。
sorted_students = sorted(students.items(), key=lambda x: len(x[1]), reverse=True)
for student_id, books in sorted_students:
print(f"Student ID: {student_id}, Books: {books}")
小明: 看起来不错!但如果学生人数增加,这种方法还适用吗?
小李: 是的,但为了提高效率,我们可以将数据存储在数据库中,比如SQLite。
import sqlite3
conn = sqlite3.connect('textbook.db')
cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS textbook_distribution (
student_id TEXT PRIMARY KEY,
book_name TEXT,
quantity INTEGER)''')
conn.commit()
小明: 数据库听起来很棒,但我们如何动态更新数据呢?
小李: 使用SQL语句即可。例如添加新学生:
cursor.execute("INSERT INTO textbook_distribution VALUES (?, ?, ?)", ("S004", "History", 1))
conn.commit()
小明: 经过你的指导,我明白了如何构建这样的系统。现在我们不仅能管理教材,还能轻松查看排名。
小李: 是的,而且这个系统易于扩展,未来还可以加入更多功能,比如自动统计等。
]]>