python創(chuàng)建學生管理系統(tǒng)
使用python創(chuàng)建學生管理系統(tǒng),供大家參考,具體內(nèi)容如下
創(chuàng)建學生管理系統(tǒng),可謂是學習編程最基礎(chǔ)的一小步。
主要是分為以下幾個思路:

接下來直接上源碼
#!/usr/bin/python3
# coding=utf-8
# 導入包
import random
# 全局變量
# 函數(shù)
# 類
# 調(diào)用函數(shù)或者類
# 裝所以數(shù)據(jù)的列表
class StudentSys(object):
def __init__(self):
# 實例屬性
self.names = []
self.infos = "1:增加|2:刪除|3:修改|4:查找|5:顯示|6:退出系統(tǒng)"
# 打印提示信息(菜單)
def print_menu(self):
"打印提示菜單信息"
print("=" * 25)
print("\t~學生管理系統(tǒng)版本~")
print("\t1:添加學生信息")
print("\t2:刪除學生信息")
print("\t3:修改學生信息")
print("\t4:查找學生信息")
print("\t5:顯示學生信息")
print("\t6:退出學生信息系統(tǒng)")
print("=" * 25)
def add_info(self):
"添加信息"
self.student = {}
name = input("請?zhí)砑有峦瑢W的姓名:")
phone = input("請?zhí)砑有峦瑢W的手機號:")
wechat = input("請輸入新同學的微信號:")
self.student["name"] = name
self.student["phone"] = phone
self.student["wechat"] = wechat
# 把學生信息(字典里面)添加到列表
self.names.append(self.student)
self.show_info()
self.save_info()
def delete_info(self):
'刪除信息'
# 根據(jù)下標刪除和內(nèi)容刪除和末尾刪除
del_name = input("請輸入刪除的學生的姓名:")
for name in self.names:
# name:{"name":"曹操"....}
if del_name == name.get("name"):
self.names.remove(name)
self.show_info()
self.save_info()
def modify_info(self):
"""修改信息"""
# 根據(jù)下標修改index是列表的方法
find_name = input("請輸入您需要修改學生的姓名: ")
flag = 0 # 0,沒有找到,1找到了
for name in self.names:
if find_name == name["name"]:
new_name = input("請輸入新的名字: ")
name["name"] = new_name
flag = 1
break
if flag == 0:
print("該名學生%s不存在" % find_name)
else:
self.show_info()
self.save_info()
def find_info(self):
'''查找信息'''
find_name = input("請輸入你要查找的姓名:")
flag = 0 # 0,沒有找到,1找到了
for name in self.names:
for value in name.values():
if find_name == value:
flag = 1
print("找到了:{}".format(find_name))
break
if flag == 0:
print("沒有找到:{}".format(find_name))
def show_info(self):
"表格方式顯示所以信息"
print("\n")
print("當前學生信息")
print("~" * 50)
print("\t姓名\t\t\t電話\t\t\t微信\t")
for name in self.names:
msg = "\t" + name.get("name") + "\t\t" + name.get("phone") + "\t\t" + name.get("wechat") + "\t\t"
print("~" * 50)
print(msg)
print("~" * 50)
print("\n")
# 程序的主要邏輯和程序入口
def start(self):
self.print_menu()
# 加載文件中保存的信息,加載到內(nèi)存中
self.load_info()
while True:
print("\n\n")
print("操作指令")
print("~" * 50)
print(self.infos)
print("~" * 50)
number = input("請按照上面的提示輸入相應指令:")
# 判斷是否輸入是純的數(shù)字
if number.isdigit():
number = int(number)
if number == 1:
# 添加信息
self.add_info()
elif number == 2:
# 刪除信息
self.delete_info()
elif number == 3: # 修改
# 修改信息
self.modify_info()
elif number == 4: # 查找
# 查找信息
self.find_info()
elif number == 5:
# 顯示信息
self.show_info()
elif number == 6:
break
else:
print("請輸入正確的編號!")
# 運行的時候,讀取保存在文件的信息,并且賦值給names,第一次讀文件,文件不存在,"r"會報錯,"a+"
def load_info(self):
f = open("students.txt", "a+")
f.seek(0, 0)
content = f.read()
# print("content==",content)
if len(content) > 0:
self.names = eval(content)
# 每次刪除或者修改或者增加都重新保存數(shù)據(jù),覆蓋保存w
def save_info(self):
f = open("students.txt", "w")
f.write(str(self.names))
f.close()
s = StudentSys()
s.start()
實現(xiàn)后的功能如下:
1、項目演示--啟動

2、添加學生信息

3、添加多個學生信息后

4、刪除數(shù)據(jù)

5、修改數(shù)據(jù)

6、查找數(shù)據(jù)

7、顯示數(shù)據(jù)

8、退出系統(tǒng)

更多學習資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python面向?qū)ο笕筇卣鳎豪^承、封裝和多態(tài)的深度解析
在面向?qū)ο蟪绦蛟O(shè)計中,對象可以看做是數(shù)據(jù)(特性)以及由一系列可以存取、操作這些數(shù)據(jù)的方法所組成的集合,Python是面向?qū)ο蟮恼Z言,支持面向?qū)ο缶幊痰娜筇匦裕豪^承、封裝(隱藏)、多態(tài),本文將逐一講解Python的三大特性2025-01-01
Python中的并發(fā)處理之a(chǎn)syncio包使用的詳解
本篇文章主要介紹了Python中的并發(fā)處理之a(chǎn)syncio包使用的詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04
Python3實現(xiàn)的旋轉(zhuǎn)矩陣圖像算法示例
這篇文章主要介紹了Python3實現(xiàn)的旋轉(zhuǎn)矩陣圖像算法,涉及Python3列表遍歷、切片轉(zhuǎn)換、矩陣運算等相關(guān)操作技巧,需要的朋友可以參考下2019-04-04
Jupyter Notebook 如何修改字體和大小以及更改字體樣式
這篇文章主要介紹了Jupyter Notebook 如何修改字體和大小以及更改字體樣式的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
終端能到import模塊 解決jupyter notebook無法導入的問題
這篇文章主要介紹了在終端能到import模塊 而在jupyter notebook無法導入的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
TensorFlow教程Softmax邏輯回歸識別手寫數(shù)字MNIST數(shù)據(jù)集
這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)的TensorFlow教程基于Softmax邏輯回歸識別手寫數(shù)字的MNIST數(shù)據(jù)集示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-11-11

