Pythonで簡単な学生情報管理システムを実装する方法
1. システム機能
1. 生徒情報の入力
2. 生徒情報の検索
3. 生徒情報の変更
4. 生徒の削除情報
5. 成績の並べ替え
6. 生徒総数の統計
7. すべての生徒情報を表示
0. システムを終了
2. システム開発環境
#1. オペレーティング システム: win7
2. 開発ツール: PyCharm
3. Python 組み込みモジュール: os、 re
3. 実装コード
import os filename='students.txt' def main(): while True: menum() choice=int(input('请选择功能:')) if choice in [0,1,2,3,4,5,6,7]: if choice==0: answer=input('您确定要退出系统吗?(y/n)') if answer=='y' or answer=='Y': print('感谢您的使用!') break #退出while循环并退出系统 else: continue elif choice == 1: insert() #录入学生信息 elif choice == 2: search() #查找学生信息 elif choice == 3: delete() #删除学生信息 elif choice == 4: modify() #修改学生信息 elif choice == 5: sort() #成绩排序 elif choice == 6: total() #统计学生总人数 elif choice == 7: show() #显示所有学生信息 def insert(): student_list=[] #用于存储学生信息,列表每个元素是字典。 while True: id=input('请输入学生ID:') if not id: break name=input('请输入学生姓名:') if not name: break try: Englist=int(input('请输入英语成绩:')) Python=int(input('请输入Python成绩:')) Java=int(input('请输入Java成绩:')) except: print('输入无效,不是整数类型,请重新输入!') continue #将录入的学生信息保存到字典中 student={'id':id,'name':name,'English':Englist,'Python':Python,'Java':Java} #将学生信息添加到列表中 student_list.append(student) answer=input('是否继续添加?(y/n)') if answer=='y' or answer=='Y': continue else: break #将学生信息保存在文件中 save(student_list) print('学生信息录入完毕!') pass def search(): student_query=[] #用列表存储,防止有同名学生。 while True: id='' name='' if os.path.exists(filename): mode=input('按ID查找请输入1,按姓名查找请输入2:') if mode == '1': id=input('请输入要查找的学生ID:') elif mode == '2': name=input('请输入要查找的学生姓名:') else: print('您的输入有误,请重新输入!') search() with open(filename,'r',encoding='utf-8') as rfile: student=rfile.readlines() for item in student: d=dict(eval(item)) if id!='': if d['id']==id: student_query.append(d) elif name!='': if d['name']==name: student_query.append(d) #显示查询结果 show_student(student_query) student_query.clear() #清空列表 answer=input('是否要继续查询?(y/n)') if answer=='y' or answer=='Y': continue else: break else: print('暂未保存学生信息。') return pass def delete(): while True: student_id=input('请输入要删除的学生ID:') if student_id != '': if os.path.exists(filename): #判断文件是否存在 with open(filename,'r',encoding='utf-8') as file: student_old=file.readlines() #读取所有学生信息并保存在列表中 else: student_old=[] flag=False #用于标记是否删除 if student_old: with open(filename,'w',encoding='utf-8') as wfile: d={} for item in student_old: #遍历学生信息列表 d=dict(eval(item)) #将字符串转成字典 if d['id']!=student_id: wfile.write(str(d)+'\n') else: flag=True if flag: print(f'id为{student_id}的学生信息已被删除') else: print(f'没有找到ID为{student_id}的学生信息') else: print('无此学生信息') break show() #删完之后重新显示所有学生信息 answer=input('是否继续删除?(y/n)') if answer=='y' or answer=='Y': continue else: break pass def modify(): show() if os.path.exists(filename): #判断文件是否存在 with open(filename,'r',encoding='utf-8') as rfile: student_old=rfile.readlines() else: return #结束函数 student_id=input('请输入要修改信息的学生ID:') with open(filename,'w',encoding='utf-8') as wfile: for item in student_old: d=dict(eval(item)) if d['id']==student_id: print('找到此学生信息,可以修改。') while True: try: d['name']=input('请输入学生姓名:') d['English']=input('请输入English成绩:') d['Python']=input('请输入Python成绩:') d['Java']=input('请输入Java成绩:') except: print('您的输入有误请重新输入!') else: break wfile.write(str(d)+'\n') print('修改成功!') else: wfile.write(str(d)+'\n') answer=input('是否继续修改其他学生信息?(y/n)') if answer=='y': modify() pass def sort(): show() if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: student_list=rfile.readlines() student_new=[] for item in student_list: d=dict(eval(item)) student_new.append(d) else: return asc_or_desc=input('请选择(0:升序,1:降序):') if asc_or_desc=='0': asc_or_desc_bool=False elif asc_or_desc=='1': asc_or_desc_bool=True else: print('您的输入有误,请重新输入!') sort() mode=input('请选择排序方式(0:按总成绩排序,1:按English成绩排序,2:按Python成绩排序,3:按Java成绩排序)') if mode=='0': student_new.sort(key=lambda x: int(x['English'])+int(x['Python'])+int(x['Java']), reverse=asc_or_desc_bool) elif mode=='1': student_new.sort(key=lambda x:int(x['English']),reverse=asc_or_desc_bool) elif mode=='2': student_new.sort(key=lambda x: int(x['Python']), reverse=asc_or_desc_bool) elif mode=='3': student_new.sort(key=lambda x: int(x['Java']), reverse=asc_or_desc_bool) else: print('您的输入有误,请重新输入!') sort() show_student(student_new) pass def total(): if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: students=rfile.readlines() if students: print(f'一共有{len(students)}名学生') else: print('还没有录入学生信息!') else: print('暂未保存学生信息......') pass def show(): student_lst=[] if os.path.exists(filename): with open(filename,'r',encoding='utf-8') as rfile: students=rfile.readlines() for item in students: student_lst.append(eval(item)) if student_lst: show_student(student_lst) else: print('暂未保存过数据!') pass def save(stu_list): try: stu_txt=open(filename,'a',encoding='utf=8') except: stu_txt=open(filename,'w',encoding='utf-8') for item in stu_list: stu_txt.write(str(item)+'\n') stu_txt.close() def show_student(lst): if len(lst)==0: print('没有查到学生信息,无数据显示!') return #定义标题显示格式 format_title='{:^6}\t{:^12}\t{:^10}\t{:^10}\t{:^10}\t{:^8}' print(format_title.format('ID','姓名','English成绩','Python成绩','Java成绩','总成绩')) #定义内容显示格式 format_data='{:^6}\t{:^12}\t{:^10}\t{:^18}\t{:^14}\t{:^8}' for item in lst: print(format_data.format(item.get('id'),item.get('name'),item.get('English'),item.get('Python'),item.get('Java'),str(int(item.get('English'))+int(item.get('Python'))+int(item.get('Java'))))) pass def menum(): print('-------------------学生信息管理系统--------------------') print('-----------------------功能菜单------------------------') print(' 1.录入学生信息') print(' 2.查找学生信息') print(' 3.删除学生信息') print(' 4.修改学生信息') print(' 5.成绩排序') print(' 6.统计学生总人数') print(' 7.显示所有学生信息') print(' 0.退出系统') print('------------------------------------------------------') main()
4. プロジェクトをパッケージ化し、.exe 実行可能ファイルを生成します
#1. サードパーティ モジュールをインストールし、DOS ウィンドウを開きます。 Enter: pip install PyInstaller and press Enter,2. Enter: pyinstaller -F プログラム ファイルの特定の場所 3. Enter を押すと、 の場所が表示されます。 exe ファイルを出力コンテンツの最後から 2 行目に追加します。以上がPythonで簡単な学生情報管理システムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









この記事では、Debianシステムの下でApacheログを分析することにより、Webサイトのパフォーマンスを改善する方法について説明します。 1.ログ分析の基本Apacheログは、IPアドレス、タイムスタンプ、リクエストURL、HTTPメソッド、応答コードなど、すべてのHTTP要求の詳細情報を記録します。 Debian Systemsでは、これらのログは通常、/var/log/apache2/access.logおよび/var/log/apache2/error.logディレクトリにあります。ログ構造を理解することは、効果的な分析の最初のステップです。 2。ログ分析ツールさまざまなツールを使用してApacheログを分析できます。コマンドラインツール:GREP、AWK、SED、およびその他のコマンドラインツール。

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

この記事では、DDOS攻撃検出方法について説明します。 「DebiansNiffer」の直接的なアプリケーションのケースは見つかりませんでしたが、次の方法はDDOS攻撃検出に使用できます:効果的なDDOS攻撃検出技術:トラフィック分析に基づく検出:突然のトラフィックの成長、特定のポートの接続の急増などのネットワークトラフィックの異常なパターンの識別。たとえば、PysharkライブラリとColoramaライブラリと組み合わせたPythonスクリプトは、ネットワークトラフィックをリアルタイムで監視し、アラートを発行できます。統計分析に基づく検出:データなどのネットワークトラフィックの統計的特性を分析することにより

DebianシステムのReadDir関数は、ディレクトリコンテンツの読み取りに使用されるシステムコールであり、Cプログラミングでよく使用されます。この記事では、ReadDirを他のツールと統合して機能を強化する方法について説明します。方法1:C言語プログラムを最初にパイプラインと組み合わせて、cプログラムを作成してreaddir関数を呼び出して結果をinclude#include#include inctargc、char*argv []){dir*dir; structdireant*entry; if(argc!= 2){(argc!= 2){

この記事では、DebianシステムでNGINXSSL証明書を更新する方法について説明します。ステップ1:最初にCERTBOTをインストールして、システムがCERTBOTおよびPython3-Certbot-Nginxパッケージがインストールされていることを確認してください。インストールされていない場合は、次のコマンドを実行してください。sudoapt-getupdatesudoapt-getinstolcallcertbotthon3-certbot-nginxステップ2:certbotコマンドを取得して構成してlet'sencrypt証明書を取得し、let'sencryptコマンドを取得し、nginx:sudocertbot - nginxを構成します。

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

DebianシステムでHTTPSサーバーの構成には、必要なソフトウェアのインストール、SSL証明書の生成、SSL証明書を使用するWebサーバー(ApacheやNginxなど)の構成など、いくつかのステップが含まれます。 Apachewebサーバーを使用していると仮定して、基本的なガイドです。 1.最初に必要なソフトウェアをインストールし、システムが最新であることを確認し、ApacheとOpenSSL:sudoaptupdatesudoaptupgraysudoaptinstaをインストールしてください
