1 import time 2 import os 3 4 # 定義一個列表,用來存儲所有的學生信息(每個學生是一個字典) 5 stu_info = [] 6 7 # 打印操作提示命令的函數 8 def print_menu(): 9 print("---------------------------") 10 print(" 學生管理系統 V1.0") 11 print(" 1:添加學生") 12 print(" 2:刪除學生") 13 print(" 3:修改學生") 14 print(" 4:查詢學生") 15 print(" 5:顯示所有學生") 16 print(" 6:保存數據") 17 print(" 7:退出系統") 18 print("---------------------------") 19 20 def add_info(): 21 """添加學生信息""" 22 global stu_info # 學生信息列表成為全局變量 23 24 add_name = input("請輸入姓名:") 25 add_tel = input("請輸入電話號碼:") 26 add_qq = input("請輸入QQ:") 27 28 # 判斷是否可以添加(所要添加的名字在列表中沒有才可以添加) 29 for info in stu_info: 30 if info['name'] == add_name: 31 print("此用戶名已經被占用,請重新輸入") 32 return # 如果一個函數只有 return ,就相當於讓函數結束,沒有返回值 33 34 # 定義一個字典,用來存儲添加的學生信息 35 info = {} 36 37 # 向字典中添加數據 38 info["name"] = add_name 39 info["tel"] = add_tel 40 info["qq"] = add_qq 41 42 # 向列表中添加這個字典 43 stu_info.append(info) 44 print("添加成功,按6保存后按5查看") 45 46 def del_info(): 47 """刪除學生信息""" 48 global stu_info 49 50 del_id = int(input("請輸入要刪除的序號:")) 51 # 判斷是否可以刪除,(刪除的學號范圍限制) 52 if 0 <= del_id < len(stu_info): 53 del_flag = input("確定刪除?yes or no:") 54 if del_flag == 'yes': 55 del stu_info[del_id] 56 print("刪除成功,按6保存后按5查看") 57 else: 58 print("輸入序號有誤,請重新輸入") 59 60 def modify_info(): 61 """修改學生信息""" 62 global stu_info 63 64 modify_id = int(input("請輸入要修改的序號:")) 65 # 判斷是否可以修改(輸入的學號范圍限制) 66 if 0 <= modify_id < len(stu_info): 67 print("你要修改的信息是:") 68 print("name:%s,tel:%s,QQ:%s" % 69 (stu_info[modify_id]["name"], stu_info[modify_id]["tel"], stu_info[modify_id]["qq"])) 70 mod_info = input("您要修改的信息是:") 71 stu_info[modify_id][mod_info] = input("請輸入新的%s:" % mod_info) 75 print("修改成功,按6保存后按5查看") 76 else: 77 print("輸入序號有誤:請重新輸入") 78 79 def query_info(): 80 """查詢學生信息""" 81 query_name = input("請輸入要查詢學生姓名:") 82 for info in stu_info: 83 if info["name"] == query_name: 84 print("查詢到的信息如下") 85 print("name:%s,tel:%s,QQ:%s" % (info["name"], info["tel"], info["qq"]))
break # 不使用break退出循環,else后的語句一定被打印 86 else: 87 print("沒有您要找的信息") 88 89 def show_all(): 90 """顯示所有學生信息""" 91 print("序號\t\t姓名\t\t手機號\t\tQQ") 92 i = 0 93 for info in stu_info: 94 print("%d\t\t%s\t\t%s\t\t%s" % (i, info['name'], info['tel'], info['qq'])) 95 i += 1 96 97 def sava_data(): 98 """保存數據""" 99 f = open("info.txt", 'w') 100 f.write(str(stu_info)) 101 f.close() 102 103 def load_data(): 104 """加載數據""" 105 global stu_info 106 f = open("info.txt") 107 content = f.read() 108 stu_info = eval(content) 109 f.close() 110 111 def main(): 112 """用來控制整個流程""" 113 114 # 加載數據(一次即可) 115 load_data() 116 117 while True: 118 # 1,打印功能 119 print_menu() 120 # 2,獲取用戶的選擇 121 num=input("請輸入要進行的操作(數字):") 122 # 3,根據用戶的選擇,做相應的事情 123 if num == '1': 124 add_info() 125 elif num == '2': 126 del_info() 127 elif num == '3': 128 modify_info() 129 elif num == '4': 130 query_info() 131 elif num == '5': 132 show_all() 133 elif num == '6': 134 sava_data() 135 elif num == '7': 136 # 退出系統 137 exit_flag = input("確定要退出嗎?yes or no") 138 if exit_flag == 'yes': 139 break 140 else: 141 print("請輸入正確的操作序號:") 142 143 # input("按回車鍵繼續...") 144 145 # 程序的開始 146 main()
准備:
需要准備一個 info.txt 文件,並且 在其中寫入 一對 [ ]
操作演示:
①添加學生
C:\Users\高萍\AppData\Local\Programs\Python\Python37\python.exe C:/Users/高萍/Desktop/python/寒假直播課/code/學生管理系統(文件版).py --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):1 請輸入姓名:張三 請輸入電話號碼:12345678 請輸入QQ:zhangsan123 添加成功,按6保存后按5查看 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):6 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):
②刪除學生
C:\Users\高萍\AppData\Local\Programs\Python\Python37\python.exe C:/Users/高萍/Desktop/python/寒假直播課/code/學生管理系統(文件版).py --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 李四 12345 lisi123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):2 請輸入要刪除的序號:1 確定刪除?yes or no:yes 刪除成功,按6保存后按5查看 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):6 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):
③修改學生
C:\Users\高萍\AppData\Local\Programs\Python\Python37\python.exe C:/Users/高萍/Desktop/python/寒假直播課/code/學生管理系統(文件版).py --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 jack 123 jack123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):3 請輸入要修改的序號:1 你要修改的信息是: name:jack,tel:123,QQ:jack123 您要修改的信息是:name 請輸入新的name:sally 修改成功,按6保存后按5查看 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):6 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 sally 123 jack123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):
④查詢學生
C:\Users\高萍\AppData\Local\Programs\Python\Python37\python.exe C:/Users/高萍/Desktop/python/寒假直播課/code/學生管理系統(文件版).py --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 sally 123 jack123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):4 請輸入要查詢學生姓名:張三 查詢到的信息如下 name:張三,tel:12345678,QQ:zhangsan123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):
⑤顯示所有學生
⑥保存數據
⑦退出系統
C:\Users\高萍\AppData\Local\Programs\Python\Python37\python.exe C:/Users/高萍/Desktop/python/寒假直播課/code/學生管理系統(文件版).py --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 sally 123 jack123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):7 確定要退出嗎?yes or no:yes Process finished with exit code 0
若想要修改多個信息
1 import time 2 import os 3 4 # 定義一個列表,用來存儲所有的學生信息(每個學生是一個字典) 5 stu_info = [] 6 7 # 打印操作提示命令的函數 8 def print_menu(): 9 print("---------------------------") 10 print(" 學生管理系統 V1.0") 11 print(" 1:添加學生") 12 print(" 2:刪除學生") 13 print(" 3:修改學生") 14 print(" 4:查詢學生") 15 print(" 5:顯示所有學生") 16 print(" 6:保存數據") 17 print(" 7:退出系統") 18 print("---------------------------") 19 20 def add_info(): 21 """添加學生信息""" 22 global stu_info # 學生信息列表成為全局變量 23 24 add_name = input("請輸入姓名:") 25 add_tel = input("請輸入電話號碼:") 26 add_qq = input("請輸入QQ:") 27 28 # 判斷是否可以添加(所要添加的名字在列表中沒有才可以添加) 29 for info in stu_info: 30 if info['name'] == add_name: 31 print("此用戶名已經被占用,請重新輸入") 32 return # 如果一個函數只有 return ,就相當於讓函數結束,沒有返回值 33 34 # 定義一個字典,用來存儲添加的學生信息 35 info = {} 36 37 # 向字典中添加數據 38 info["name"] = add_name 39 info["tel"] = add_tel 40 info["qq"] = add_qq 41 42 # 向列表中添加這個字典 43 stu_info.append(info) 44 print("添加成功,按6保存后按5查看") 45 46 def del_info(): 47 """刪除學生信息""" 48 global stu_info 49 50 del_id = int(input("請輸入要刪除的序號:")) 51 # 判斷是否可以刪除,(刪除的學號范圍限制) 52 if 0 <= del_id < len(stu_info): 53 del_flag = input("確定刪除?yes or no:") 54 if del_flag == 'yes': 55 del stu_info[del_id] 56 print("刪除成功,按6保存后按5查看") 57 else: 58 print("輸入序號有誤,請重新輸入") 59 60 def modify_info(): 61 """修改學生信息""" 62 global stu_info 63 64 modify_id = int(input("請輸入要修改的序號:")) 65 # 判斷是否可以修改(輸入的學號范圍限制) 66 if 0 <= modify_id < len(stu_info): 67 print("你要修改的信息是:") 68 print("name:%s,tel:%s,QQ:%s" % 69 (stu_info[modify_id]["name"], stu_info[modify_id]["tel"], stu_info[modify_id]["qq"])) 70 # mod_info = input("您要修改的信息是:") 71 # stu_info[modify_id][mod_info] = input("請輸入新的%s:" % mod_info) 72 stu_info[modify_id]['name'] = input("請輸入新的姓名:") 73 stu_info[modify_id]['tel'] = input("請輸入新的電話:") 74 stu_info[modify_id]['QQ'] = input("請輸入新的QQ") 75 print("修改成功,按6保存后按5查看") 76 else: 77 print("輸入序號有誤:請重新輸入") 78 79 def query_info(): 80 """查詢學生信息""" 81 query_name = input("請輸入要查詢學生姓名:") 82 for info in stu_info: 83 if info["name"] == query_name: 84 print("查詢到的信息如下") 85 print("name:%s,tel:%s,QQ:%s" % (info["name"], info["tel"], info["qq"])) 86 break # 如果不使用break結束循環,else后的語句一定會被打印 87 else: 88 print("沒有您要找的信息") 89 90 def show_all(): 91 """顯示所有學生信息""" 92 print("序號\t\t姓名\t\t手機號\t\tQQ") 93 i = 0 94 for info in stu_info: 95 print("%d\t\t%s\t\t%s\t\t%s" % (i, info['name'], info['tel'], info['qq'])) 96 i += 1 97 98 def sava_data(): 99 """保存數據""" 100 f = open("info.txt", 'w') 101 f.write(str(stu_info)) 102 f.close() 103 104 def load_data(): 105 """加載數據""" 106 global stu_info 107 f = open("info.txt") 108 content = f.read() 109 stu_info = eval(content) 110 f.close() 111 112 def main(): 113 """用來控制整個流程""" 114 115 # 加載數據(一次即可) 116 load_data() 117 118 while True: 119 # 1,打印功能 120 print_menu() 121 # 2,獲取用戶的選擇 122 num=input("請輸入要進行的操作(數字):") 123 # 3,根據用戶的選擇,做相應的事情 124 if num == '1': 125 add_info() 126 elif num == '2': 127 del_info() 128 elif num == '3': 129 modify_info() 130 elif num == '4': 131 query_info() 132 elif num == '5': 133 show_all() 134 elif num == '6': 135 sava_data() 136 elif num == '7': 137 # 退出系統 138 exit_flag = input("確定要退出嗎?yes or no:") 139 if exit_flag == 'yes': 140 break 141 else: 142 print("請輸入正確的操作序號:") 143 144 # input("按回車鍵繼續...") 145 146 # 程序的開始 147 main()
演示:
C:\Users\高萍\AppData\Local\Programs\Python\Python37\python.exe C:/Users/高萍/Desktop/python/寒假直播課/code/學生管理系統(文件版).py --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 sally 123 jack123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):3 請輸入要修改的序號:1 你要修改的信息是: name:sally,tel:123,QQ:jack123 請輸入新的姓名:sally2 請輸入新的電話:1234 請輸入新的QQsally123 修改成功,按6保存后按5查看 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):6 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):5 序號 姓名 手機號 QQ 0 張三 12345678 zhangsan123 1 sally2 1234 jack123 --------------------------- 學生管理系統 V1.0 1:添加學生 2:刪除學生 3:修改學生 4:查詢學生 5:顯示所有學生 6:保存數據 7:退出系統 --------------------------- 請輸入要進行的操作(數字):