Python之學生信息管理系統

目錄

一、基礎界面實現

?1、主函數

2、保持循環,獲取用戶需求

?二、函數實現模塊功能

1、添加學生信息

2、刪除學生信息

?3、修改學生信息

4、查找全部學生信息

5、退出系統

三、整合代碼

1、 完整代碼

2、完整實現過程


實現

打印功能菜單、添加學生信息、刪除學生信息、修改學生信息、顯示學生信息、退出系統,并且需要接收用戶的輸入,在根據輸入內容調用相應函數實現相應功能,模板圖如下:

一、基礎界面實現

?1、主函數

定義主函數main,并通過定義print_menu()函數輸打印學生管理系統菜單

#打印功能菜單
def print_menu():print('='*30)print('學生管理系統')print('1.添加學生信息')print('2.刪除學生信息')print('3.修改學生信息')print('4.顯示所有學生信息')print('0.退出系統')print('')#定義主函數
def main():print_menu()
if __name__ == "__main__":main()

2、保持循環,獲取用戶需求

(1)while True循環:使系統菜單一直保持循環,為后面實現用戶選擇退出系統后,系統才結束循環作鋪墊

(2)變量key:將獲取到的用戶需要實現的功能進行存儲

(3)if循環:多分支循環,再分別實現各個模塊的功能

#定義主函數
def main():while True:print_menu()key = input('請輸入功能對應的數字:')if key == '1':#添加學生信息passelif key == '2':#刪除學生信息passelif key == '3':#修改學生信息passelif key == '4':#查找全部學生信息passelif key == '0':#退出系統passelse:print('輸入有誤')

?二、函數實現模塊功能

1、添加學生信息

(1)name,sex,phone:存儲用戶輸入的新學生的姓名,性別,手機號碼信息

(2)new_info():定義成一個字典,通過鍵值對的形式,存儲當前學生的所有信息

(3)append():列表的添加,將當前的字典存入列表,作為列表的一個元素

(4)stu_info:定義了一個列表用來存儲所有的學生信息

#定義一個列表來存儲所有學生信息
stu_info = []#添加學生信息
def add_stu_info():name = input('請輸入新學生的姓名:')sex = input('請輸入新學生的性別:')phone = input('請輸入新學生的手機號碼:')new_info = dict()#定義一個字典new_info['name'] = namenew_info['sex'] = sexnew_info['phone'] = phonestu_info.append(new_info)

2、刪除學生信息

(1)len():進入刪除操作前先判斷學生信息表是否為空

①為空:輸出學生信息表為空,直接跳出刪除操作

②不空:通過del_num變量記錄用戶需要刪除的學生序號

(2)記錄好要刪除的學生序號還需要進一步判斷輸入的序號是否有誤

①為flase:輸出要刪除的序號有誤,跳出刪除操作

②為true:通過del列表的刪除操作進行刪除對應序號的學生信息,并輸出刪除成功

#刪除學生信息
def del_stu_info(student):if len(stu_info) != 0:del_num = int(input('請輸入要刪除的序號:')) - 1if del_num < len(stu_info):del student[del_num]print(f'刪除指定序號:{del_num+1}成功')else:print('要刪除的序號有誤')else:print('學生信息表為空')

?3、修改學生信息

(1)len():進入修改操作前先判斷學生信息表是否為空

①為空:輸出學生信息表為空,直接跳出修改操作

②不空:通過rev_num變量記錄用戶需要修改的學生序號

(2)記錄好要修改的學生序號還需要進一步判斷輸入的序號是否有誤

①為flase:輸出要修改的序號有誤,跳出修改操作

②為true:通過rev_name、rev_sex、rev_phone變量記錄修改后學生的信息

(3)stu_info[][]:通過列表修改元素的方法,將新的信息替換舊的信息

#修改學生信息
def rev_stu_info():if len(stu_info) != 0:rev_num = int(input('請輸入要修改學生的序號:')) - 1if rev_num >= len(stu_info):print("要修改的序號有誤")else:rev_name = input('請輸入要修改學生的姓名:')rev_sex = input('請輸入要修改學生的性別:')rev_phone = input('請輸入要修改學生的手機:')stu_info[rev_num]['name'] = rev_namestu_info[rev_num]['sex'] = rev_sexstu_info[rev_num]['phone'] = rev_phoneelse:print('學生信息表為空')

4、查找全部學生信息

(1)len():進入查找操作前先判斷學生信息表是否為空

①為空:輸出學生信息表為空,直接跳出查找操作

②不空:輸出學生信息如下

(2)i:序號,記錄并輸出學生數量

(3)for循環:逐個輸出列表元素

#查找全部學生信息
def show_stu_info():if len(stu_info) != 0:print('學生的信息如下:')print('=' * 30)print('序號  姓名  性別  手機號碼')i = 1for temp_info in stu_info:print("%d  %s  %s  %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))i += 1else:print('學生信息表為空')

5、退出系統

(1)quit_confirm:再次詢問用戶是否退出,并記錄

(2)if循環:判斷用戶輸入的是Yes還是No

①break:用戶輸入Yes,即確定退出,跳出while True這個死循環

②coninue:用戶輸入No,即不退出,則繼續新一輪的while True循環

#定義主函數
def main():while True:print_menu()key = input('請輸入功能對應的數字:')if key == '1':#添加學生信息passelif key == '2':#刪除學生信息passelif key == '3':#修改學生信息passelif key == '4':#查找全部學生信息passelif key == '0':#退出系統quit_confirm = input('親,真的要退出么?(Yes/No):')if quit_confirm == 'Yes':breakelif quit_confirm == 'No':continueelse:print('輸入有誤,請重新輸入')else:print('輸入有誤')

三、整合代碼

1、 完整代碼

#定義一個列表來存儲所有學生信息
stu_info = []#打印功能菜單
def print_menu():print('=' * 30)print('學生管理系統')print('1.添加學生信息')print('2.刪除學生信息')print('3.修改學生信息')print('4.顯示所有學生信息')print('0.退出系統')print('=' * 30)#添加學生信息
def add_stu_info():name = input('請輸入新學生的姓名:')sex = input('請輸入新學生的性別:')phone = input('請輸入新學生的手機號碼:')new_info = dict()#定義一個字典new_info['name'] = namenew_info['sex'] = sexnew_info['phone'] = phonestu_info.append(new_info)#刪除學生信息
def del_stu_info(student):if len(student) != 0:del_num = int(input('請輸入要刪除的序號:')) - 1if del_num < len(stu_info):del student[del_num]print(f'刪除指定序號:{del_num+1}成功')else:print('要刪除的序號有誤')else:print('學生信息表為空')#修改學生信息
def rev_stu_info():if len(stu_info) != 0:rev_num = int(input('請輸入要修改學生的序號:')) - 1if rev_num >= len(stu_info):print("要修改的序號有誤")else:rev_name = input('請輸入要修改學生的姓名:')rev_sex = input('請輸入要修改學生的性別:')rev_phone = input('請輸入要修改學生的手機:')stu_info[rev_num]['name'] = rev_namestu_info[rev_num]['sex'] = rev_sexstu_info[rev_num]['phone'] = rev_phoneelse:print('學生信息表為空')#查找全部學生信息
def show_stu_info():if len(stu_info) != 0:print('學生的信息如下:')print('=' * 30)print('序號  姓名  性別  手機號碼')i = 1for temp_info in stu_info:print("%d  %s  %s  %s" %(i,temp_info['name'],temp_info['sex'],temp_info['phone']))i += 1else:print('學生信息表為空')#定義主函數
def main():while True:print_menu()key = input('請輸入對應的功能的數字:')if key == '1':#添加學生信息add_stu_info()elif key == '2':#刪除學生信息del_stu_info(stu_info)elif key == '3':#修改學生信息rev_stu_info()elif key == '4':#顯示所有學生信息show_stu_info()elif key == '0':#退出系統quit_confirm = input('親,真的要退出么?(Yes/No):')if quit_confirm == 'Yes' or quit_confirm == 'yes' or quit_confirm == 'YES':breakelif quit_confirm == 'No' or quit_confirm == 'no' or quit_confirm == 'NO':continueelse:print('輸入有誤,請重新輸入')else:print('輸入有誤,請重新輸入')if __name__=='__main__':main()

2、完整實現過程

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/164193.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/164193.shtml
英文地址,請注明出處:http://en.pswp.cn/news/164193.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

想自學軟件測試?一般人我還是勸你算了吧。。。

&#x1f4e2;專注于分享軟件測試干貨內容&#xff0c;歡迎點贊 &#x1f44d; 收藏 ?留言 &#x1f4dd; 如有錯誤敬請指正&#xff01;&#x1f4e2;交流討論&#xff1a;歡迎加入我們一起學習&#xff01;&#x1f4e2;資源分享&#xff1a;耗時200小時精選的「軟件測試」資…

<keep-alive>作用及用法

<keep-alive>是Vue.js的內置組件。它用于緩存具有相同組件樹的組件。當組件使用<keep-alive>包裹時&#xff0c;組件不會被銷毀&#xff0c;而是會緩存到內存中&#xff0c;等到下次再次渲染時&#xff0c;直接使用緩存中的組件實例。 <keep-alive>有以下幾…

【Linux】共享內存

文章目錄 一、共享內存的原理詳談共享內存的實現過程二、共享內存的接口函數1.shmget2. shmatshmdtshmctl 進程間使用共享內存通信三、共享內存的特性 關于代碼 一、共享內存的原理 共享內存是由操作系統維護和管理的一塊內存。 共享內存的本質是內核級的緩沖區。 一個進程向…

C語言精華題目錦集1

第一題 test.c文件中包括如下語句&#xff0c;文件中定義的四個變量中&#xff0c;是指針類型的是&#xff08;&#xff09;【多選】 #define INT_PTR int* typedef int* intptr; INT_PRT a,b; int_ptr c,d;A:a ?B:b ?C:c ?D:d #define是宏定義&#xff0c;此時在程序中IN…

SQLite3 數據庫學習(六):Qt 嵌入式 Web 服務器詳解

參考引用 SQLite 權威指南&#xff08;第二版&#xff09;SQLite3 入門 1. Apache 搭建 cgi 環境 1.1 什么是 Apache Apache 是世界使用排名第一的 Web 服務器軟件 它可以運行在幾乎所有廣泛使用的計算機平臺上&#xff0c;由于其跨平臺和安全性被廣泛使用 1.2 具體搭建流程…

一、用戶管理

一、后端數據庫初始化 1.1 因為版本問題&#xff0c;始終報錯&#xff0c;按照報錯信息去查詢解決方案&#xff0c;無法解決 靈機一動&#xff1a; 網址&#xff1a; Spring Boot 3.0 升級 實戰踩坑記錄 - 掘金 (juejin.cn) &#xff11;.&#xff12; 個人配置【運行成功…

c++的三目運算符

C三目運算符增強 C中的三目運算符表達式返回的可以是一個變量&#xff0c;但是C語言中返回的是一個常量。 C語言中&#xff1a; void test05() { int a 10; int b 20; printf("%d\n", a < b ? a : b); //在C語言中三目運算符返回的是表達式的值&am…

Javascript每天一道算法題(十三)——最大子數組和_中等

文章目錄 動態規劃題三個重要步驟&#xff08;了解思路&#xff09;1、問題2、示例3、解決方法&#xff08;1&#xff09;方法1——動態規劃 總結 動態規劃題三個重要步驟&#xff08;了解思路&#xff09; &#xff08;1&#xff09;定義數組元素的含義 用一個數組來保存歷史數…

2020年06月 Scratch(三級)真題解析#中國電子學會#全國青少年軟件編程等級考試

Scratch等級考試(1~4級)全部真題?點這里 一、單選題(共25題,每題2分,共50分) 第1題 執行以下腳本后舞臺上的角色將 ? A:先克隆自身,克隆體出現后被刪除。 B:先克隆自身,克隆體出現后刪除本體。 C:克隆出自身后本體與克隆體同時被刪除。 D:克隆出自身后本體與克…

docker常用命令, 鏡像版本的導入、導出并加載,打包鏡像的命令

文章目錄 docker常用命令&#xff1a;打鏡像包&#xff1a;鏡像版本的導入、導出并加載 docker常用命令&#xff1a; 打鏡像包&#xff1a; ? docker build -t calc:20230630 /home/apps/calc/docker/ 刪除某個鏡像的版本&#xff0c;allen_mysql的5.7版本 docker rmi all…

Redis深入理解-內核請求處理流程、數據傳輸協議

Redis 內核級請求處理流程 Redis Server 其實就是 Linux 服務器中的一個進程 主要還是下圖的流程 應用先和 server 端建立 TCP 連接建立連接之后&#xff0c;server 端就會有一個與該客戶端通信的 socket&#xff0c;客戶端的讀寫請求發送到服務端的 socket那么通過 IO 多路…

分組背包問題學習筆記 AcWing 9. 分組背包問題

原題 有 N&#xfffd; 組物品和一個容量是 V&#xfffd; 的背包。 每組物品有若干個&#xff0c;同一組內的物品最多只能選一個。 每件物品的體積是 vij&#xfffd;&#xfffd;&#xfffd;&#xff0c;價值是 wij&#xfffd;&#xfffd;&#xfffd;&#xff0c;其中 …

PC8233(CC/CV控制)高耐壓輸入5V/3.4A同步降壓電路內建補償帶恒流恒壓輸出

概述 PC8233&#xff08;替代CX8853&#xff09;是一款同步降壓調節器,輸出電流高達3.4A,操作范圍從8V到32V的寬電源電壓。內部補償要求最低數量現成的標準外部組件。PC8233在CC&#xff08;恒定輸出電流&#xff09;模式或CV&#xff08;恒定輸出電壓&#xff09;模式&#x…

【前端】前端監控?埋點

文章目錄 前端監控分為三個方面前端監控流程異常監控常見的錯誤捕獲方法主要是 try / catch 、window.onerror 和window.addEventListener 等。Promise 錯誤Vue 錯誤React 錯誤 性能監控用戶行為監控常見的埋點方案來源 前端監控分為三個方面 異常監控&#xff08;監控前端頁面…

基于element-ui后臺模板,日常嘮嗑

后面會補充github地址 文章目錄 目錄 文章目錄 案例說明 1.引入庫 2.創建布局組件 3.創建布局組件 4.菜單效果展示 5.創建頂部組件 5.創建頂部面包屑組件 6.創建內容區域組件 7.效果總覽 7.布丁&#xff08;實現一些小細節&#xff09; 前言一、pandas是什么&#xff1f;二、使…

CentOS7中升級OpenSSL詳細教程

文章目錄 一. 引言二. 升級前的準備1.備份現有配置2. 檢查系統版本3. 安裝依賴 三. OpenSSL安裝四. 驗證 一. 引言 OpenSSL: 是用于保護數據安全的重要工具。它能提供加密&#xff0c;解密等多項功能。 然而&#xff0c;隨著技術的發展和新的安全漏洞的出現&#xff0c;使用最…

管理類聯考——英語二——備考 100 句涵蓋所有詞匯

全中 在海里的這個地區&#xff0c;熊貓們喜歡就著蘇打碗豆喝茶。而大洋州的民兵則喜歡經過半島&#xff0c;帶著編劇本的公式上餐廳去。附件的電影院里有額外的歌劇和香蕉&#xff0c;這一時代的斑馬們被外面的天線所吸引。實驗室里的蟹想用它的肋骨去戳四肢象燈炮的小羊。但…

千夢網創:創業,一場游戲一場夢

創業這件事就好比一場養成類游戲&#xff0c;而我們自己就是游戲主角。 這個游戲有一個特殊之處在于&#xff1a;SSS級裝備有穿戴等級設定&#xff0c;就算你氪重金買到了一把神器&#xff0c;自身閱歷不夠也根本無法發揮它的強大威力而只能當個裝飾。 這就要求我們真正沉浸在…

催單開發信怎么寫?外貿人如何寫催單郵件?

年末催單開發信編寫技巧&#xff1f;最有效的催單話術有哪些&#xff1f; 催單開發信成為了企業間日常溝通的重要一環。這些信件不僅有助于促進業務發展&#xff0c;還可加強供應鏈的協調&#xff0c;確保貨物及時送達。蜂郵EDM將介紹如何寫一封出色的催單開發信&#xff0c;以…

ubuntu20.04安裝多版本cuda,切換版本

1. 安裝cuda toolkit: 下載網站 https://developer.nvidia.com/cuda-11.3.0-download-archive 選擇版本&#xff0c;這里選擇11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run給cuda權限: chmod x…