Python實現學生系統


# 4. 修改之前的學生信息管理程序,實現添加菜單和選擇菜單操作功能:
#    菜單:
#      +-----------------------------+
#      |  1) 添加學生信息              |
#      |  2) 查看所有學生信息          |
#      |  3) 修改學生的成績            |
#      |  4) 刪除學生信息              |
#      |  q) 退出                     |
#      +-----------------------------+
#    請選擇: 1
#      請輸入姓名:....
#    請選擇: 3
#      請輸入修改學生的姓名: ....
#   (要求每個功能都對應一個函數)


def input_student():
    # 此函數獲取學生信息,並返回學生信息的字典的列表
    L = []
    # d = {}  # 此處所有學生將共用一個字典,會出錯
    while True:
        name = input("請輸入學生姓名: ")
        if not name:
            break
        age = int(input("請輸入學生年齡: "))
        score = int(input("請輸入學生成績: "))
        d = {}  # 重新創建一個新的字典
        d['name'] = name
        d['age'] = age
        d['score'] = score
        L.append(d)
    return L


def output_student(L):
    # 以表格形式再打印學生信息
    print('+------------+------+-------+')
    print('|   name     | age  | score |')
    print('+------------+------+-------+')
    for d in L:  # d綁定的是字典
        t = (d['name'].center(12),
             str(d['age']).center(6),
             str(d['score']).center(7))
        line = "|%s|%s|%s|" % t  # t是元組
        print(line)
    print('+------------+------+-------+')

# 寫一個打印菜單的函數
def show_menu():
    print('+-----------------------------+')
    print('|  1) 添加學生信息            |')
    print('|  2) 查看所有學生信息        |')
    print('|  3) 修改學生的成績          |')
    print('|  4) 刪除學生信息            |')
    print('|  q) 退出                    |')
    print('+-----------------------------+')

# 此函數用來存改學生的信息
def modify_student_info(lst):
    name = input("請輸入要修改學生的姓名: ")
    for d in lst:
        if d['name'] == name:
            score = int(input("請輸入新的成績: "))
            d['score'] = score
            print("修改", name, '的成績為', score)
            return
    else:
        print("沒有找到名為:", name, '的學生信息')

# 定義一個刪除學生信息的函數
def delete_student_info(lst):
    name = input("請輸入要刪除學生的姓名: ")
    for i in range(len(lst)):  # 從0開始把所有索引取出一遍
        if lst[i]['name'] == name:
            del lst[i]
            print("已成功刪除: ", name)
            return True
    else:
        print("沒有找到名為:", name, "的學生")

# 定義一個主函數,用來獲取鍵盤操作,實現選擇的功能
def main():
    docs = []  # 此列表用來存儲所有學生的信息的字典
    while True:
        show_menu()
        s = input("請選擇: ")
        if s == '1':
            docs += input_student()
        elif s == '2':
            output_student(docs)
        elif s == '3':  # 修改學生成績
            modify_student_info(docs)
        elif s == '4':  # 刪除學生成績
            delete_student_info(docs)
        elif s == 'q':
            return  # 結束此函數執行,直接退出


main()
 

總結一下思路:學生的所有信息都是輸入進變量里,然后將變量指向字典對應鍵的值,由此單個學生的信息都存入字典中,再將這些字典存在列表中,遍歷列表遍歷學生信息


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM