欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用字典和列表實現(xiàn)學生信息管理系統(tǒng)

 更新時間:2022年06月30日 09:34:47   作者:Toblerone_Wind  
這篇文章主要為大家詳細介紹了Python如何利用字典和列表實現(xiàn)一個簡易的學生信息管理系統(tǒng),文中詳細注釋,方便理解,需要的可以參考一下

本文將利用Python中的字典和列表實現(xiàn)學生信息管理系統(tǒng)

文件的存放格式采用的是python自帶的pickle模塊,需要新建course.txt和student.txt供程序讀寫。

下面是示例代碼

import pickle
 
# 從文件中讀取學生信息并返回
def readStudent():
    with open("student.txt",'rb') as f:
        try:
            return pickle.load(f)
        #讀取失敗,說明讀取的文件為空,返回空列表即可
        except EOFError:
            return []
 
# 保存學生信息student_list到文件student.txt中
def saveStudent(student_list):
    with open("student.txt",'wb') as f:
        pickle.dump(student_list, f)
 
# 增加學生信息
def addStudent(student_list):
    id = input("請輸入要增加的學生學號:")
    name = input("請輸入要增加的學生姓名:")
    sex = input("請輸入要增加的學生性別:")
    specialty = input("請輸入要增加的學生專業(yè)班級:")
    # 把這4個數(shù)據(jù)裝入字典student中
    student = {"學號":id, "姓名":name, "性別":sex, "專業(yè)班級":specialty}
    # 把字典student添加到列表student_list中
    student_list.append(student)
 
# 刪除學生信息
def deleteStudent(student_list):
    id = input("請輸入要刪除的學生學號:")
    for i in range(0, len(student_list)):
        # student_list[i]是一個字典
        if student_list[i]["學號"] == id:
            # 刪除student_list中的第i個字典
            student_list.pop(i)
            print("刪除成功!")
            return # 結束函數(shù)
    print("刪除失敗,未查詢到該學生。")
 
# 修改學生信息
def modifyStudent(student_list):
    id = input("請輸入要修改的學生學號:")
    for i in range(0, len(student_list)):
        if student_list[i]["學號"] == id:
            id = input("請輸入修改后的學生學號:")
            name = input("請輸入修改后的姓名:")
            sex = input("請輸入修改后的性別:")
            specialty = input("請輸入修改后的專業(yè)班級:")
            # 把這4個數(shù)據(jù)裝入字典student中
            student = {"學號":id, "姓名":name, "性別":sex, "專業(yè)班級":specialty}
            # 用student替換student_list中的第i個字典
            student_list[i] = student
            print("修改成功!")
            return # 結束函數(shù)
    print("修改失敗,未查詢到該學生。")
 
# 顯示所有學生信息
def showStudent(student_list):
    print("學號\t\t姓名\t\t性別\t\t專業(yè)班級")
    for student in student_list:
        print("%s\t\t%s\t\t%s\t\t%s" %(student["學號"], student["姓名"], student["性別"], student["專業(yè)班級"]))
 
# 從文件中讀取學生成績信息
def readCourse():
    with open("course.txt",'rb') as f:
        try:
            return pickle.load(f)
        #讀取失敗,說明讀取的文件為空,返回空列表即可
        except EOFError:
            return []
 
# 保存學生成績信息course_list到文件course.txt中
def saveCourse(course_list):
    with open("course.txt",'wb') as f:
        pickle.dump(course_list, f)
 
# 增加學生成績信息    
def addCourse(course_list):
    id = input("請輸入要增加的學生學號:")
    english = int(input("請輸入該學生的英語成績:"))
    math = int(input("請輸入該學生的數(shù)學成績:"))
    computer = int(input("請輸入該學生的計算機成績:"))
    chemistry = int(input("請輸入該學生的化學成績:"))
    PE = int(input("請輸入該學生的體育成績:"))
    # 把這6個數(shù)據(jù)裝入字典course中
    course = {"學號":id, "英語":english, "數(shù)學":math, "計算機":computer, "化學":chemistry, "體育":PE}
    # 把字典course添加到列表course_list中
    course_list.append(course)
 
# 刪除學生成績信息  
def deleteCourse(course_list):
    id = input("請輸入要刪除的學生學號:")
    for i in range(0, len(course_list)):
        # course_list[i]是一個字典
        if course_list[i]["學號"] == id:
            # 刪除列表中的第i個字典
            course_list.pop(i)
            print("刪除成功!")
            return #結束函數(shù)
    print("刪除失敗,未查詢到該學生成績。")
 
# 修改學生成績信息
def modifyCourse(course_list):
    id = input("請輸入要修改的學生學號:")
    for i in range(0, len(course_list)):
        if course_list[i]["學號"] == id:
            id = input("請輸入修改后的學生學號:")
            english = int(input("請輸入修改后的英語成績:"))
            math = int(input("請輸入修改后的數(shù)學成績:"))
            computer = int(input("請輸入修改后的計算機成績:"))
            chemistry = int(input("請輸入修改后的化學成績:"))
            PE = int(input("請輸入修改后的體育成績:"))
            # 把這6個數(shù)據(jù)裝入字典course中
            course = {"學號":id, "英語":english, "數(shù)學":math, "計算機":computer, "化學":chemistry, "體育":PE}
            # 用dict替換舊的數(shù)據(jù)
            course_list[i] = course
            print("修改成功!")
            return #結束函數(shù)
    print("修改失敗,未查詢到該學生成績。")
 
# 顯示學生成績信息
def showCourse(course_list):
    print("學號\t\t英語\t\t數(shù)學\t\t計算機\t\t化學\t\t體育")
    for course in course_list:
        print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d" %(course["學號"], course["英語"], course["數(shù)學"],
                    course["計算機"], course["化學"], course["體育"]))
 
# 通過姓名查詢該生的成績信息
def searchScoreByName(student_list, course_list):
    name = input("請輸入學生姓名:")
    id = "未查詢到"
    for stu in student_list:
        if stu["姓名"] == name:
            id = stu["學號"]
            break
    if id == "未查詢到":
        print("未查詢到該學生信息。")
        return #結束函數(shù)
    for course in course_list:
        if course["學號"] == id:
            print("查詢成功!該學生信息如下:")
            print("學號\t\t英語\t\t數(shù)學\t\t計算機\t\t化學\t\t體育")
            print("%s\t\t%d\t\t%d\t\t%d\t\t%d\t\t%d" %(course["學號"], course["英語"], course["數(shù)學"],
                course["計算機"], course["化學"], course["體育"]))
            return #結束程序
    print("未查詢到該學生成績信息。")
 
# 查詢某門課程得分最高的學生信息
def searchStudentByHighScore(student_list, course_list):
    courseName = input("請輸入課程名稱:")
    # 按這門課程冒泡排序
    for i in range(0, len(course_list)-1):
        for j in range(0, len(course_list)-1-i):
            if course_list[j][courseName] < course_list[j+1][courseName]:
                course_list[j], course_list[j+1] = course_list[j+1], course_list[j]
    id = course_list[0]["學號"]
    for student in student_list:
        if student["學號"] == id:
            print("查找成功!")
            print("學號\t\t姓名\t\t性別\t\t專業(yè)班級")
            print("%s\t\t%s\t\t%s\t\t%s" %(student["學號"], student["姓名"], student["性別"], student["專業(yè)班級"]))
            return
    print("未查找到該學生信息。")
 
# 輸出某門課的平均成績
def outputAverageScore(course_list):
    courseName = input("請輸入課程名稱:")
    sum = 0
    for course in course_list:
        sum += course[courseName]
    print("%s平均成績?yōu)?.2f" %(courseName, sum/len(course_list)))
 
# 主菜單
def menu():
    print("1.增加學生信息    2.增加成績信息")
    print("3.修改學生信息    4.修改成績信息")
    print("5.刪除學生信息    6.刪除成績信息")
    print("7.顯示學生信息    8.顯示成績信息")
    print("9.通過姓名查詢該生的成績信息")
    print("10.查詢某門課程得分最高的學生信息")
    print("11.輸出某門課的平均成績")
    print("0.保存并退出")
 
# 主函數(shù)
def main():
    student_list = readStudent()
    course_list = readCourse()
    flag = True
    while flag:
        menu()
        choose = input("請輸入選項:")
        while True:
            # 增加學生信息
            if choose == '1':
                addStudent(student_list)
                break
            # 增加成績信息
            elif choose == '2':
                addCourse(course_list)
                break
            # 修改學生信息
            elif choose == '3':
                modifyStudent(student_list)
                break
            # 修改成績信息
            elif choose == '4':
                modifyCourse(course_list)
                break
            # 刪除學生信息
            elif choose == '5':
                deleteStudent(student_list)
                break
            # 刪除成績信息
            elif choose == '6':
                deleteCourse(course_list)
                break
            # 顯示學生信息
            elif choose == '7':
                showStudent(student_list)
                break
            # 顯示成績信息
            elif choose == '8':
                showCourse(course_list)
                break
            # 通過姓名查詢該生的成績信息
            elif choose == '9':
                searchScoreByName(student_list, course_list)
                break
            # 查詢某門課程得分最高的學生信息
            elif choose == '10':
                searchStudentByHighScore(student_list, course_list)
                break
            # 輸出某門課的平均成績
            elif choose == '11':
                outputAverageScore(course_list)
                break
            # 保存數(shù)據(jù)并退出
            elif choose == '0':
                saveStudent(student_list)
                saveCourse(course_list)
                flag = False
                break
            else:
                choose = input("輸入錯誤, 請重新輸入:")
    
if __name__=='__main__':
    main()

到此這篇關于Python利用字典和列表實現(xiàn)學生信息管理系統(tǒng)的文章就介紹到這了,更多相關Python學生信息管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 利用Python求陰影部分的面積實例代碼

    利用Python求陰影部分的面積實例代碼

    這篇文章主要給大家介紹了關于利用Python求陰影部分面積的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • Python正則re模塊使用步驟及原理解析

    Python正則re模塊使用步驟及原理解析

    這篇文章主要介紹了Python正則re模塊使用步驟及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • 如何修改numpy?array的數(shù)據(jù)類型

    如何修改numpy?array的數(shù)據(jù)類型

    這篇文章主要介紹了如何修改numpy?array的數(shù)據(jù)類型,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python 圖像對比度增強的幾種方法(小結)

    Python 圖像對比度增強的幾種方法(小結)

    這篇文章主要介紹了Python 圖像對比度增強的幾種方法(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • python爬蟲中PhantomJS加載頁面的實例方法

    python爬蟲中PhantomJS加載頁面的實例方法

    在本篇文章里小編給大家整理了關于python爬蟲中PhantomJS加載頁面的實例方法,有需要的朋友們可以參考下。
    2020-11-11
  • 關于python中逆序的三位數(shù)

    關于python中逆序的三位數(shù)

    這篇文章主要介紹了關于python中逆序的三位數(shù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • Python?Matplotlib中使用plt.savefig存儲圖片的方法舉例

    Python?Matplotlib中使用plt.savefig存儲圖片的方法舉例

    pytorch下保存圖像有很多種方法,但是這些基本上都是基于圖像處理的,將圖像的像素指定一定的維度,下面這篇文章主要給大家介紹了關于Python?Matplotlib中使用plt.savefig存儲圖片的相關資料,需要的朋友可以參考下
    2023-02-02
  • Python用yield from實現(xiàn)異步協(xié)程爬蟲的實踐

    Python用yield from實現(xiàn)異步協(xié)程爬蟲的實踐

    本文主要介紹了Python用yield from實現(xiàn)異步協(xié)程爬蟲的實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • Pandas中的unique()和nunique()區(qū)別詳解

    Pandas中的unique()和nunique()區(qū)別詳解

    Pandas中Series和DataFrame的兩種數(shù)據(jù)類型中都有nunique()和unique()方法,本文詳細的介紹了兩者的區(qū)別,具有一定的參考價值,感興趣的可以了解一下
    2022-08-08
  • 華為校園招聘上機筆試題 撲克牌大?。╬ython)

    華為校園招聘上機筆試題 撲克牌大?。╬ython)

    這篇文章主要為大家詳細介紹了華為校園招聘上機筆試題:撲克牌大小,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評論