婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 基于python制作簡易版學生信息管理系統

基于python制作簡易版學生信息管理系統

熱門標簽:蓋州市地圖標注 地圖標注的意義點 地圖制圖標注位置改變是移位嗎 315電話機器人廣告 地圖標注微信發送位置不顯示 房產電銷外呼系統 南京銷售外呼系統軟件 上海機器人外呼系統哪家好 浙江電銷卡外呼系統好用嗎

一、前言

本篇博客對于文件操作、字典、列表、匿名函數以及sort()等內置函數進行了系統的整理操作,以設計一個學生信息管理系統的形式展示,具體概念方法等會在代碼后進行分析講述,請讀者仔細分析每一處解析,對于基礎鞏固將會有很大的幫助,其中還有每一塊代碼的設計思路圖,邏輯分析會有一定的提升。

二、需求分析

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

import os
File_Object_Name = 'Student_Inforation.txt'

三、主函數

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

五、錄入信息

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()

七、查找信息

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

八、刪除信息

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

九、修改信息

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

十、顯示信息

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

十一、按成績排序

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

十二、統計人數

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制作簡易版學生信息管理系統的文章就介紹到這了,更多相關python學生信息管理系統內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python實現學生管理系統源碼
  • Python實現學生管理系統的完整代碼(面向對象)
  • 使用python實現學生信息管理系統
  • python實現學生信息管理系統源碼
  • python實現簡單的學生管理系統
  • 利用Python實現學生信息管理系統的完整實例
  • 基于Python實現簡單學生管理系統
  • 用python實現學生管理系統
  • python實現學生管理系統開發
  • python實現簡單學生信息管理系統
  • python學生管理系統的實現
  • Python實戰之實現簡易的學生選課系統

標簽:赤峰 日照 貴州 臨汾 雙鴨山 金華 陽泉 克拉瑪依

巨人網絡通訊聲明:本文標題《基于python制作簡易版學生信息管理系統》,本文關鍵詞  基于,python,制作,簡易,版,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《基于python制作簡易版學生信息管理系統》相關的同類信息!
  • 本頁收集關于基于python制作簡易版學生信息管理系統的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产一区二区视频在线| 国产精品成人一区二区艾草 | 欧美亚洲愉拍一区二区| 男男成人高潮片免费网站| 日本韩国欧美一区二区三区| 午夜精品爽啪视频| 国产亚洲综合色| 欧美精品一卡两卡| 高清成人在线观看| 日韩精品一二区| 成人免费小视频| 日韩欧美国产综合一区 | 国产一区视频导航| 亚洲国产日韩在线一区模特| 久久影院午夜论| 欧美日韩一区久久| a美女胸又www黄视频久久| 一区在线中文字幕| 精品噜噜噜噜久久久久久久久试看 | 一区二区在线观看视频在线观看| 99国产精品国产精品久久| 免费在线观看一区| 亚洲精品中文字幕在线观看| 久久精品一区二区三区不卡| 69久久99精品久久久久婷婷 | 日韩三级在线观看| 欧美午夜精品久久久久久孕妇| 国产自产v一区二区三区c| 天堂一区二区在线| 国产精品五月天| 国产亚洲欧美日韩在线一区| 精品入口麻豆88视频| 欧美欧美欧美欧美首页| 色婷婷综合久久久中文字幕| 国产91精品一区二区麻豆亚洲| 亚洲精品老司机| 国产精品传媒入口麻豆| 国产日韩精品一区二区三区在线| 久久久久国色av免费看影院| 欧美日本在线播放| 欧美日韩一区二区欧美激情| 欧美最猛性xxxxx直播| 91免费观看国产| 国产一区二区三区最好精华液| 蜜臀精品一区二区三区在线观看| 日韩在线一区二区三区| 日韩av午夜在线观看| 五月激情六月综合| 日日夜夜精品视频免费| 午夜欧美视频在线观看| 秋霞午夜av一区二区三区| 日本不卡一区二区三区高清视频| 免费高清成人在线| 精品一区二区三区在线视频| 亚洲国产美女搞黄色| 婷婷开心激情综合| 久久狠狠亚洲综合| 国产成人欧美日韩在线电影| 国产不卡一区视频| 毛片不卡一区二区| 丰满少妇在线播放bd日韩电影| 成人avav影音| 欧美日免费三级在线| 欧美一级欧美三级在线观看| 欧美videos中文字幕| 国产清纯在线一区二区www| 亚洲婷婷综合久久一本伊一区| 亚洲欧美精品午睡沙发| 五月综合激情网| 激情综合色播激情啊| 成人美女视频在线观看18| 色菇凉天天综合网| 欧美一区二区三区系列电影| 精品盗摄一区二区三区| 亚洲日本青草视频在线怡红院 | 色综合欧美在线视频区| 欧美疯狂做受xxxx富婆| 国产丝袜欧美中文另类| 亚洲日本电影在线| 色综合久久天天| 久久这里只有精品首页| 天涯成人国产亚洲精品一区av| jlzzjlzz欧美大全| 久久精品一区蜜桃臀影院| 免费成人在线视频观看| 欧美日韩高清在线| 亚洲国产va精品久久久不卡综合| 91免费在线视频观看| 国产欧美日韩三区| 国产精品一区二区男女羞羞无遮挡| 欧美一区二区视频免费观看| 亚洲第一成人在线| 欧美美女黄视频| 午夜视频一区在线观看| 在线观看亚洲一区| 亚洲综合成人网| 欧美午夜精品久久久久久超碰| 亚洲综合色成人| 欧美日韩一二三区| 亚洲风情在线资源站| 欧美三级韩国三级日本一级| 亚洲一区二区视频在线观看| 欧美日韩成人一区| 日韩一区精品字幕| 日韩三级中文字幕| 国产乱理伦片在线观看夜一区| 精品久久久久久久久久久久包黑料 | 免费高清不卡av| 日韩欧美国产系列| 国产成人无遮挡在线视频| 中文字幕+乱码+中文字幕一区| 成人开心网精品视频| 亚洲免费三区一区二区| 欧美人妖巨大在线| 狠狠网亚洲精品| 国产精品大尺度| 欧美日韩不卡在线| 国产一区美女在线| 亚洲欧美日韩国产一区二区三区| 欧美视频在线一区二区三区| 看片网站欧美日韩| 亚洲欧洲美洲综合色网| 欧美日韩视频一区二区| 国产主播一区二区三区| 亚洲免费在线观看| 91精品国产综合久久久久| 国产伦精一区二区三区| 亚洲精品伦理在线| 26uuu色噜噜精品一区| 色综合视频一区二区三区高清| 午夜日韩在线电影| 欧美国产欧美综合| 欧美性色aⅴ视频一区日韩精品| 免费成人深夜小野草| 亚洲欧洲精品一区二区三区| 91精品国产色综合久久不卡电影 | 国产成人无遮挡在线视频| 亚洲午夜影视影院在线观看| 久久久99精品免费观看| 欧美日韩成人激情| 99久久免费视频.com| 韩国一区二区在线观看| 一区二区三区在线免费视频| 精品粉嫩aⅴ一区二区三区四区| 在线这里只有精品| 国产丶欧美丶日本不卡视频| 亚洲综合久久av| 欧美国产精品一区二区三区| 日韩视频在线你懂得| 欧美探花视频资源| av不卡在线观看| 国产一区二区精品久久| 日本成人在线电影网| 一区二区三区精品视频| 国产精品女人毛片| 久久久久97国产精华液好用吗| 欧美日韩视频在线第一区| 一本一道久久a久久精品| 国产精品一区二区果冻传媒| 水野朝阳av一区二区三区| 亚洲色图视频网| 久久久99精品免费观看| 日韩免费观看高清完整版 | k8久久久一区二区三区| 国产在线一区观看| 久久精品国产亚洲高清剧情介绍 | 国产伦精品一区二区三区在线观看| 婷婷久久综合九色综合伊人色| 亚洲精品中文字幕乱码三区| 亚洲国产精品传媒在线观看| 26uuu精品一区二区在线观看| 3atv一区二区三区| 欧美亚一区二区| 91黄色在线观看| 日本道精品一区二区三区| 91婷婷韩国欧美一区二区| 99国产精品一区| 成人av在线电影| 成人午夜av电影| 成人avav影音| 一本色道a无线码一区v| 91久久香蕉国产日韩欧美9色| 91丨九色丨黑人外教| 91丨porny丨国产入口| 一本色道久久综合精品竹菊| 欧美性受xxxx黑人xyx| 欧美三级电影在线看| 欧美日韩亚洲综合在线| 91精品国产综合久久香蕉的特点| 制服视频三区第一页精品| 日韩一区二区三区视频在线观看| 欧美tickling网站挠脚心| 国产网站一区二区| 亚洲欧洲综合另类| 天堂久久久久va久久久久| 久久超级碰视频| 99久久免费视频.com| 7878成人国产在线观看| 久久久久久久国产精品影院| 亚洲天天做日日做天天谢日日欢|