Inhaltsverzeichnis
1. Funktion
# Definieren Sie die Studentenliste und speichern Sie alle Studenteninformationen stu_list = [] def show_menu(): print('1. Schüler hinzufügen') print('2. Schüler löschen') print('3. Schülerinformationen ändern') print('4. Informationen zu einzelnen Schülern abfragen') print('5. Alle Schülerinformationen abfragen') print('6. Verlassen Sie das System') def insert_student(): # 1. Erhalten Sie Schülerinformationen, Namen, Alter und Geschlecht über die Eingabefunktion name = input('Bitte geben Sie den Namen des Schülers ein:') # [{}, {}, {}] beurteilt, ob der Wert im Wörterbuch vorhanden ist für stu in stu_list: if stu['name'] == name: print('----------Schülerinformationen vorhanden---------') return # beendet die Ausführung der Funktion age = input('Bitte geben Sie das Alter des Schülers ein:') gender = input('Bitte geben Sie das Geschlecht des Schülers ein:') # 2. Konvertieren Sie Schülerinformationen zur Speicherung in ein Wörterbuch stu_dict = {'name': name, 'age': int(age), 'gender': gender} # 3. Fügen Sie dieses Schülerwörterbuch zur Liste hinzu stu_list.append(stu_dict) print('===============Schülerinformationen erfolgreich hinzugefügt ======================') def remove_student(): # 1. Verwenden Sie die Eingabe, um den Namen des Schülers abzurufen, der gelöscht/geändert/abgefragt werden soll name = input('Bitte geben Sie den Namen des zu bedienenden Schülers ein:') # 2. Stellen Sie fest, ob die Schülerinformationen vorhanden sind für stu in stu_list: if stu['name'] == name: # 3. Der Student existiert, löschen/ändern/fragen Sie den Studenten ab stu_list.remove(stu) # zurückkehren brechen # 4. Studenteninformationen sind nicht vorhanden, beenden Sie direkt anders: print('***************Die Studenteninformationen existieren nicht, können nicht gelöscht werden****************') def modifizieren_student(): # 1. Verwenden Sie die Eingabe, um den Namen des Schülers abzurufen, der gelöscht/geändert/abgefragt werden soll name = input('Bitte geben Sie den Namen des zu bedienenden Schülers ein:') # 2. Stellen Sie fest, ob die Schülerinformationen vorhanden sind für stu in stu_list: if stu['name'] == name: # 3. Der Student existiert, löschen/ändern/fragen Sie den Studenten ab stu['age'] = int(input('Bitte geben Sie ein neues Alter ein:')) # zurückkehren brechen # 4. Studenteninformationen sind nicht vorhanden, beenden Sie direkt anders: print('***************Die Studenteninformationen sind nicht vorhanden und können nicht geändert werden***************') def search_student(): # 1. Verwenden Sie die Eingabe, um den Namen des Schülers abzurufen, der gelöscht/geändert/abgefragt werden soll name = input('Bitte geben Sie den Namen des zu bedienenden Schülers ein:') # 2. Stellen Sie fest, ob die Schülerinformationen vorhanden sind für stu in stu_list: if stu['name'] == name: # 3. Der Student existiert, löschen/ändern/fragen Sie den Studenten ab print(f'name:{stu["name"]}, Alter:{stu["age"]}, Geschlecht:{stu["gender"]}') # zurückkehren brechen # 4. Studenteninformationen sind nicht vorhanden, beenden Sie direkt anders: print('**********Die Studenteninformationen existieren nicht******************') def show_all_info(): wenn len(stu_list) > 0: für stu in stu_list: print(f'name:{stu["name"]}, Alter:{stu["age"]}, Geschlecht:{stu["gender"]}') # print(stu) anders: print('Derzeit keine Studenteninformationen') def main(): während True: zeige das Menü() opt = input('Bitte geben Sie die Vorgangsnummer zur Auswahl ein:') wenn opt == '1': # print('1. Schüler hinzufügen') insert_student() elif opt == '2': # print('2. Schüler löschen') remove_student() elif opt == '3': # print('3. Schülerinformationen ändern') modifizieren_student() elif opt == '4': # print('4. Informationen zu einem einzelnen Schüler abfragen') search_student() elif opt == '5': # print('5. Alle Schülerinformationen abfragen') show_all_info() elif opt == '6': print('Willkommen, dieses System das nächste Mal zu verwenden...') brechen anders: print('Falsche Eingabe, bitte erneut eingeben') weitermachen input('...Eingabetaste, um den Vorgang fortzusetzen...') hauptsächlich()
Zweitens, objektorientiert
1、main.py
import student_manager_system as sms
if __name__ == '__main__':
stu_sms = sms.StudentManagerSystem()
stu_sms.start()
2. Management
import student
class StudentManagerSystem(object):
def __init__(self):
self.stu_dicts = {}
@staticmethod
def __show_menu():
print('1. 添加学生')
print('2. 删除学生')
print('3. 修改学生信息')
print('4. 查询单个学生信息')
print('5. 查询所有的学生信息')
print('6. 退出系统')
def __insert_student(self):
# 1. 使用 input 获取学生的信息
stu_id = input('请输入学生学号:')
# 代码优化, 判断学生信息是否存在, 学号是否存在. 判断字典的key是否存在
if stu_id in self.stu_dicts: # key存在返回True
print('学生信息已经存在, 不需要再次添加.........')
return
name = input('请输入学生名字:')
age = input('请输入学生年龄:')
gender = input('请输入学生性别:')
# 2. 使用学生信息,创建学生对象 学生类(参数)
stu = student.Student(stu_id, name, age, gender)
# 3. 将学生对象添加的字典中 字典['key'] = 数据值
self.stu_dicts[stu_id] = stu
def __remove_student(self):
# 1. 使用 input 输入学生学号
stu_id = input('请输入学号:')
# 2. 判断学生信息是否存在
if stu_id in self.stu_dicts:
# 3. 存在进行操作, 删除字典中的数据, del 变量[key]
del self.stu_dicts[stu_id]
print('学生已经删除')
else:
print('学生信息不存在,无法删除.....')
def __modify_student(self):
# 1. 使用 input 输入学生学号
stu_id = input('请输入学号:')
# 2. 判断学生信息是否存在
if stu_id in self.stu_dicts:
# 修改对象的属性 对象.属性名 = 属性值
stu = self.stu_dicts[stu_id] # 字典[key]
stu.age = input('请输入新的年龄:')
print('信息已经修改完毕.....')
else:
print('学生信息不存在,无法删除.....')
def __search_student(self):
# 1. 使用 input 输入学生学号
stu_id = input('请输入学号:')
# 2. 判断学生信息是否存在
if stu_id in self.stu_dicts:
# 修改对象的属性 对象.属性名 = 属性值
stu = self.stu_dicts[stu_id] # 字典[key]
print(stu)
else:
print('学生信息不存在,无法删除.....')
def __show_all_info(self):
for stu in self.stu_dicts.values():
print(stu)
def __save(self):
f = open('student.txt', 'w', encoding='utf-8')
for stu in self.stu_dicts.values():
f.write(str(stu) + '\n') # str(stu) 调用 student类中的__str__ 方法
f.close()
def __load_info(self):
try:
f = open('student.txt', 'r', encoding='utf-8')
buf_list = f.readlines()
for buf in buf_list:
buf = buf.strip() # 去重\n
info_list = buf.split(',') # 列表
# 创建对象
# stu = student.Student(info_list[0], info_list[1], info_list[2], info_list[3])
stu = student.Student(*info_list)
# 将对象添加到字典中
stu_id = info_list[0]
self.stu_dicts[stu_id] = stu
f.close()
except Exception:
pass
def start(self):
self.__load_info()
while True:
self.__show_menu()
opt = input('请输入用来选择的操作编号:')
if opt == '1':
# print('1. 添加学生')
self.__insert_student()
elif opt == '2':
# print('2. 删除学生')
self.__remove_student()
elif opt == '3':
# print('3. 修改学生信息')
self.__modify_student()
elif opt == '4':
# print('4. 查询单个学生信息')
self.__search_student()
elif opt == '5':
# print('5. 查询所有的学生信息')
self.__show_all_info()
elif opt == '6':
self.__save()
print('欢迎下次使用本系统......')
break
else:
print('输入有误,请再次输入')
continue
input('...... 回车键继续操作.......')
3. Studenten
class Student(object):
def __init__(self, stu_id, name, age, gender):
self.stu_id = stu_id
self.name = name
self.age = age
self.gender = gender
def __str__(self):
return f"{self.stu_id},{self.name},{self.age},{self.gender}"
if __name__ == '__main__':
stu = Student(1, 'aa', 18, 'm')
print(stu)