中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用python怎么制作一個學生信息管理系統

發布時間:2021-04-20 15:33:24 來源:億速云 閱讀:237 作者:Leah 欄目:開發技術

使用python怎么制作一個學生信息管理系統?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

Python主要用來做什么

Python主要應用于:1、Web開發;2、數據科學研究;3、網絡爬蟲;4、嵌入式應用開發;5、游戲開發;6、桌面應用開發。

需求分析

使用python怎么制作一個學生信息管理系統

使用python怎么制作一個學生信息管理系統

本程序需要用到os模板首先導入,并命名要存儲信息的文件

import os
File_Object_Name = 'Student_Inforation.txt'

三、主函數

使用python怎么制作一個學生信息管理系統

def Main():
    while True:
        Menu()
        _Select = int(input('Please select operation:'))
        if _Select in [0, 1, 2, 3, 4, 5, 6, 7]:
            if _Select == 0:
                _Answer = input('Do you want to log out?(Y/N)')
                if _Answer == 'Y' or _Answer == 'y':
                    print('Thank for you use!!!')
                    break
                    pass
                else:
                    continue
                    pass
                pass
            elif _Select == 1:
                Insert_Infor()
                pass
            elif _Select == 2:
                Search_Infor()
                pass
            elif _Select == 3:
                Delete_Infor()
                pass
            elif _Select == 4:
                Change_Infor()
                pass
            elif _Select == 5:
                Sort()
                pass
            elif _Select == 6:
                Count_Total_Num()
                pass
            elif _Select == 7:
                Show_Infor()
                pass
            pass
        else:
            print('Error Input!!!')
            pass

四、功能菜單

def Menu():
    print('=========Student Information Management System=========')
    print('---------------------Function menu---------------------')
    print('             1、Input Student Information')
    print('             2、Search Student Information')
    print('             3、Delete Student Information')
    print('             4、Change Student Information')
    print('             5、Sort According to Score')
    print('             6、Count Total Student Number')
    print('             7、Show All Student Information')
    print('             0、Log Out')
    print('-------------------------------------------------------')
    pass

五、錄入信息

使用python怎么制作一個學生信息管理系統

def Insert_Infor():
    Student_Infor_List = []  # 創建一個學生信息空列表,后面會用到
    while True:
        Stu_Id = input('Please input the id(such as 1001,1002):')
        if not Stu_Id:  # 空的字符串轉為bool類型為False,非空為True,此處若是輸入為空會直接跳出循環。(空列表、字典、元組等都滿足)
            break
            pass
        Stu_Name = input('Please input the name:')
        if not Stu_Name:
            break
            pass
        try:
            English_Score = int(input('Please input the English score:'))
            Python_Score = int(input('Please input the Python score:'))
            Java_Score = int(input('Please input the Java score:'))
            pass
        except:
            print('Error Input(not int),please input again')
            continue
            pass
        # 將每個學生的信息放入一個字典當中
        Student_Infor_Dict = {'Id': Stu_Id, 'Name': Stu_Name, 'English': English_Score, 'Python': Python_Score, 'Java': Java_Score}
        # 將一個字典作為一個元素放入學生信息列表
        Student_Infor_List.append(Student_Infor_Dict)  # 使用 append() 方法來添加列表項
        _Answer = input('Whether to input more?(Y/N)')
        if _Answer == 'Y' or _Answer == 'y':
            continue
            pass
        else:
            break
            pass
        pass
    # 將學生信息列表中的字典元素保存到文件之中,調用Keep_Infor()函數
    Keep_Infor(Student_Infor_List)
    print('Input Finished')
    pass

六、保存信息

def Keep_Infor(List):
    File_Object = open(File_Object_Name, mode='a', encoding='utf-8')
    # 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入。
    for item in List:
        File_Object.write(str(item)+'\n')
        pass
    # 將傳入的列表中的字典元素強制轉換成字符串類型并拼接上換行符寫入文件
    File_Object.close()

七、查找信息

使用python怎么制作一個學生信息管理系統

def Search_Infor():
    Student_Query = [] # 空列表,之后用于存放查找到的學生信息
    while True:
        Student_Id = ''
        Student_Name = ''
        if os.path.exists(File_Object_Name):
        # os.path模塊主要用于文件的屬性獲取,os.path.exists()就是判斷括號里的文件是否存在,括號內的可以是文件路徑/名。
            Search_Mode = int(input('search by id(1) or by name(2):'))
            if Search_Mode == 1:
                Student_Id = input('Please input id:')
                pass
            elif Search_Mode == 2:
                Student_Name = input('Please input name:')
                pass
            else:
                print('Error Input,try again!')
                Search_Infor()
                pass
            with open(File_Object_Name, 'r', encoding='utf-8')as File_Object:  # 只讀模式打開文件并將類對象賦給File_Object
                Student_List = File_Object.readlines()  # readlines()按行讀取,一次性讀取所有內容,返回一個列表,每一行內容作為一個元素
                for item in Student_List:  # 遍歷列表中元素
                    _Dict = eval(item)
                    # 由于是以字符串類型保存到文件中,此時item相當于'dict'形式,要將其用eval()函數轉換為字典,即脫掉''。
                    if Student_Id:  # 如果選的是按照姓名查找,則此空字符串已經不再為空,bool類型為True
                        if Student_Id == _Dict['Id']:
                            Student_Query.append(_Dict)
                            pass
                        pass
                    elif Student_Name:
                        if Student_Name == _Dict['Name']:
                            Student_Query.append(_Dict)
                            pass
                        pass
                    pass
                if Student_Query == []:  # 仍為空說明未找到。
                    print('no such student,try again')
                    Search_Infor()  # 再次調用函數
                    pass
                pass
            pass
        else:
            print('Still no such file to keep student information!')
            pass
        print(Student_Query[0])  # 此時該列表中只有一個字典元素,直接打印輸出
        Student_Query.clear()  # 調用內置函數清空列表,方便下次使用
        _Answer = input('Whether to search others?(Y/N)')
        if _Answer == 'Y' or _Answer == 'y':
            continue
            pass
        else:
            return
        pass
    pass

八、刪除信息

使用python怎么制作一個學生信息管理系統

def Delete_Infor():
    while True:
        Student_Id = input('Please input the student‘s id that you want to delete:')
        if Student_Id:
            if os.path.exists(File_Object_Name):
                with open(File_Object_Name, 'r', encoding='utf-8')as File1:
                    Old_Student_Infor = File1.readlines()  # 讀取每行作為元素放入Old_Student_Infor列表
                    pass
                pass
            else:
                Old_Student_Infor = []
                pass
            Flag = False  # 是否刪除成功的標志
            if Old_Student_Infor:
                with open(File_Object_Name, 'w', encoding='utf-8')as File2:
                    _Dict = {}
                    for item in Old_Student_Infor:
                        _Dict = eval(item)  # 將刪除信息之前的列表元素轉化為字典形式賦給_Dict
                        if _Dict['Id'] != Student_Id:
                            File2.write(str(_Dict)+'\n')
                            # 如果與要刪除的信息的Id不同,覆蓋寫入原文件
                            pass
                        else:
                            Flag = True  # 如果相同的話,則不寫入文件中,相當于刪除成功
                            pass
                        pass
                    if Flag:
                        print('Student information of {} has been delete'.format(Student_Id))
                        pass
                    else:
                        print('Can not find student of id:{}'.format(Student_Id))
                        pass
                    pass
                pass
            else:
                print('file have no student information')
                break
                pass
            Show_Infor()
            _Answer = input('Whether to delete more?(Y/N)')
            pass
        if _Answer == 'Y' or _Answer == 'y':
            continue
            pass
        else:
            break
            pass
        pass
    pass

九、修改信息

使用python怎么制作一個學生信息管理系統

def Change_Infor():
    Show_Infor()
    if os.path.exists(File_Object_Name):
        with open(File_Object_Name, 'r', encoding='utf-8')as old_file:
            Old_Student_Infor = old_file.readlines()
            pass
        pass
    else:
        return
    Student_Id = input('Please input the id you wanna change:')
    if Student_Id:
        with open(File_Object_Name, 'w', encoding='utf-8')as new_file:
            for item in Old_Student_Infor:
                _dict = dict(eval(item))
                if _dict['Id'] == Student_Id:
                    print('Find it,can change it!')
                    while True:
                        try:
                            _dict['Name'] = input('Please input new name:')
                            _dict['English'] = input('Please input new English score:')
                            _dict['Python'] = input('Please input new Python score:')
                            _dict['Java'] = input('Please input new Java score:')
                            pass
                        except:
                            print('Error Input!!!Try again')
                            pass
                        new_file.write(str(_dict)+'\n')
                        print('Successfully change!')
                        break
                        pass
                    pass
                else:
                    print('Can‘t find it')
                    new_file.write(str(_dict)+'\n')
                    pass
                pass
            pass
        pass
    _Answer = input('Whether to change more?(Y/N)')
    if _Answer == 'y' or _Answer == 'Y':
        Change_Infor()
        pass
    else:
        return
    pass

十、顯示信息

使用python怎么制作一個學生信息管理系統

def Show_Infor():
    Infor_List = []
    if os.path.exists(File_Object_Name):
        with open(File_Object_Name, 'r', encoding='utf-8')as File_Object:
            Stu_List = File_Object.readlines()
            for item1 in Stu_List:
                Infor_List.append(dict(eval(item1)))
                pass
            if Infor_List:
                for item2 in Infor_List:
                    print(item2)
                    pass
                pass
            else:
                print('no student')
                pass
            pass
        pass
    else:
        print('no such file')
        pass
    pass

十一、按成績排序

使用python怎么制作一個學生信息管理系統

def Sort():
    Show_Infor()
    Infor_List = []
    if os.path.exists(File_Object_Name):
        with open(File_Object_Name, 'r', encoding='utf-8')as File_Object:
            Student_List = File_Object.readlines()
            for item in Student_List:
                _Dict = dict(eval(item))
                Infor_List.append(_Dict)
                pass
            pass
        pass
    else:
        print('no such file')
        return
    Sort_Mode = bool(input('Please input sort mode(0、ascending order|1、descending order)'))
    if not Sort_Mode:  # ascending order
        reverse_mode = True
        pass
    else:  # descending order
        reverse_mode = False
        pass
    Specific_Sort_Mode = int(input('Sort by English(1),by Python(2),by Jave(3),by total(4):'))
    if Specific_Sort_Mode == 1:
        Infor_List.sort(key=lambda x: int(x['English']), reverse=reverse_mode)
        pass
    elif Specific_Sort_Mode == 2:
        Infor_List.sort(key=lambda x: int(x['Python']), reverse=reverse_mode)
        pass
    elif Specific_Sort_Mode == 3:
        Infor_List.sort(key=lambda x: int(x['Java']), reverse=reverse_mode)
        pass
    elif Specific_Sort_Mode == 4:
        Infor_List.sort(key=lambda x: int(x['English']) + int(x['Python']) + int(x['Java']), reverse=reverse_mode)
        pass
    else:
        print('Error Input,try again')
        Sort()
        pass
    for item in Infor_List:
        print(item)
        pass
    pass
  • sort()函數原型: list.sort(key=None, reverse=False)

key參數 :
key接受的是一個只有一個形參的函數,形式如下
def f(a):
return len(a)
key接受的函數返回值,表示此元素的權值,sort將按照權值大小進行排序
reverse參數 :
reverse接受的是一個bool類型的值 (Ture or False),表示是否顛倒排列順序,一般默認的是False

十二、統計人數

使用python怎么制作一個學生信息管理系統

def Count_Total_Num():
    if os.path.exists(File_Object_Name):
        with open(File_Object_Name, 'r', encoding='utf-8')as File_Object:
            Stu_List = File_Object.readlines()
            _Count = len(Stu_List)
            if _Count >= 2:
                print('A total of {} students')
                pass
            elif _Count ==1:
                print('A single student!')
                pass
            else:
                print('no student!')
                pass
            pass
        pass
    else:
        print('still no such file!')
        pass
    pass

十三、最后記得運行主函數

Main()

十四、將程序打包成可執行exe文件

1.cmd進入command界面

2.輸入pip install PyInstaller

3.安裝完成后仍在cmd界面輸入pyinstaller -F py為擴展名的文件路徑\文件名.py

4.操作后將會有一大串代碼,倒數第二行會有最終文件的保存地址,打開之后將之前編譯程序生成的txt文件移入該文件夾中即可操作

關于使用python怎么制作一個學生信息管理系統問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

分宜县| 融水| 安宁市| 中阳县| 海林市| 应城市| 和平县| 虞城县| 常州市| 陇西县| 延长县| 绥德县| 前郭尔| 白河县| 华亭县| 田阳县| 定兴县| 隆昌县| 天气| 夏邑县| 故城县| 岳阳县| 西安市| 南乐县| 左权县| 扬州市| 琼海市| 特克斯县| 抚宁县| 从化市| 岑溪市| 德令哈市| 略阳县| 凤翔县| 汕头市| 增城市| 曲松县| 申扎县| 宜宾市| 调兵山市| 故城县|