学生(学号, 姓名, 性别, 年龄, 班级, 专业, 系部, 电话)
先将学生信息保存到文本文件里,用空格来隔开每个字段
创建“用元组的列表保存多个学生信息.py”
''' 用元组列表保存多个学生信息 ''' # 定义6个学生元组 student1 = ('2021001', '李晓红', '女', '19', '软件技术', '人工智能与大数据学院', '15945456780') student2 = ('2021002', '王晓刚', '男', '18', '软件技术', '人工智能与大数据学院', '13890904567') student3 = ('2021003', '唐雨涵', '女', '19', '软件技术', '人工智能与大数据学院', '18878789023') student4 = ('2021101', '张三丰', '男', '18', '大数据技术', '人工智能与大数据学院', '15945456780') student5 = ('2021102', '肖雨林', '男', '18', '大数据技术', '人工智能与大数据学院', '18890904560') student6 = ('2021103', '郑小翠', '女', '19', '大数据技术', '人工智能与大数据学院', '15890904567') # 创建学生元组构建的列表 students = [] students.append(student1) students.append(student2) students.append(student3) students.append(student4) students.append(student5) students.append(student6) # 遍历学生列表 for student in students: for i in range(len(student)): print(student[i],end=' ') print()
运行程,序查看结果
首先产看学生文件位置
创建“读取学生文件,保存到元素的列表里.py”
''' 读取学生文件,保存到元组列表 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 格式化输出学生列表 for student in students: for i in range(len(student)): print(student[i],end=' ') print()
运行程序,查看结果
将文件的编码改为上图所示,就不会出现文件操作问题。读取文件就不会出现报错现象。要读取文件记得将创建的程序与文件放在同一个文件夹内。
''' 添加学生元组到列表 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 添加一个学生元组 new_student = ('2121004', '吴文燕', '女', '18', '2021级软件4班', '软件技术', '人工智能与大数据学院', '12345678901') students.append(new_student) # 输出更新之后的学生元组列表 for student in students: for i in range(len(student)): print(student[i], end=' ') print()
运行程序,查看结果
''' 按学号查询学生记录 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 用户从键盘输入学号 id = input('请输入查找学生的学号:') found = False for student in students: if (student[0] == id ): found = True for i in range(len(student)): print(student[i], end=' ') break if not found: print('温馨提示:查询的学生不存在!'.format(id))
运行程序,查看结果
''' 按姓名查询 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 用户从键盘输入学号 name = input('请输入查找学生的姓名:') found = False for student in students: if (student[1] == name ): found = True for i in range(len(student)): print(student[i],end= ' ') if not found: print('温馨提示:查询的学生不存在!'.format(name))
运行程序,查看结果
''' 修改学生记录 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 输入待改学生的学号 id = input('输入待改学生的学号:') found = False for student in students: if (student[0] == id): found = True # 将学生元组转成列表 student = list(student) new_age = input('输入修改后的年龄:') new_telephone = input('输入新的号码:') # 修改学生元组指定属性的值 student[3] = new_age student[7] = new_telephone # 列表还原成元组 student = tuple(student) print('恭喜:学生记录修改成功!') for i in range(len(student)): print(student[i], end=' ') break if not found: print('学号为{}的学生没找到!'.format(id))
运行程序,查看结果
''' 删除学生记录 ''' # 创建空学生列表 students = [] # 以只读方式打开文件 f = open('学生.txt') # 以行的方式遍历文件对象 for line in f: # 去掉每一行的换行符 line = line.replace('\n', '') # 以空格作为分隔符拆分每一行 student = tuple(line.split(' ')) #将学生元组添加到学生列表 students.append(student) # 输入待删学生的学号 id = input('输入待删学生的学号:') found = False for student in students: if (student[0] == id): found = True # 按值删除列表元素 students.remove(student) print('恭喜:学生记录删除成功!') break if not found: print('学号为{}的学生没找到!'.format(id)) else: for student in students: for i in range(len(student)): print(student[i], end=' ') print()
运行程序,查看结果
编写“将学生元组的列表写入文件.py”
''' 将学生元组的列表写入文件 ''' # 定义6个学生元组 student1 = ('2021001', '李晓红', '女', '90', '软件技术', '人工智能与大数据学院', '15945456780') student2 = ('2021002', '王晓刚', '男', '18', '软件技术', '人工智能与大数据学院', '13890904567') student3 = ('2021003', '唐雨涵', '女', '19', '软件技术', '人工智能与大数据学院', '18878789023') student4 = ('2021101', '张三丰', '男', '18', '大数据技术', '人工智能与大数据学院', '15945456780') student5 = ('2021102', '肖雨林', '男', '18', '大数据技术', '人工智能与大数据学院', '18890904560') student6 = ('2021103', '郑小翠', '女', '19', '大数据技术', '人工智能与大数据学院', '15890904567') # 创建学生元组构建的列表 students = [] students.append(student1) students.append(student2) students.append(student3) students.append(student4) students.append(student5) students.append(student6) # 输出学生列表 print(students) # 创建可写的文件 f = open('学生.txt', 'w') for student in students: student_line = ' '.join(student) + '\n' f.write(student_line) # 关闭文件 f.close() print('学生元组的列表写入文件成功!')
运行程序,查看结果
然后我们刷新一下学生文件有没有写入成功。
成功写入!
编写程序 - 学生信息管理.py
把增、删、改、查等所有功能全部完善,并完整运行。
def add_student(): students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('学号:') name = input('姓名:') gender = input('性别:') age = input('年龄:') grade = input('班级:') major = input('专业:') department = input('系部:') telephone = input('电话:') students.append([id, name, gender, age, grade, major, department, telephone]) f = open('学生.txt', 'w') for i in range(len(students)): student = ' '. join(students[i]) + '\n' f.write(student) f.close() print('\n恭喜,学生记录添加成功!\n') def query_student(): while True: print('查询学生记录') print('=' * 12) print('1.按学号查询学生记录') print('2.按姓名查询学生记录') print('3.查询全部学生记录') print('4.返回上级菜单') print('=' * 12) mc3 = int(input('输入菜单号:')) if mc3 == 1: students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('请输入查找学生的学号:') found = False for student in students: if (student[0] == id): found = True for i in range(len(student)): print(student[i], end=' ') break if not found: print('温馨提示:查询的学生不存在!'.format(id)) elif mc3 == 2: students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) name = input('请输入查找学生的姓名:') found = False for student in students: if (student[1] == name): found = True for i in range(len(student)): print(student[i], end=' ') if not found: print('温馨提示:查询的学生不存在!'.format(name)) elif mc3 == 3: students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) for student in students: for i in range(len(student)): print(student[i], end=' ') print() else: break def modify_student(): students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('输入待改学生的学号:') found = False for student in students: if (student[0] == id): found = True student = list(student) new_age = input('输入修改后的年龄:') new_telephone = input('输入新的号码:') student[3] = new_age student[7] = new_telephone student = tuple(student) print('恭喜:学生记录修改成功!') for i in range(len(student)): print(student[i], end=' ') break if not found: print('学号为{}的学生没找到!'.format(id)) f = open('学生.txt', 'w') for i in range(len(students)): student = ' '.join(students[i]) + '\n' f.write(student) f.close() def delete_student(): students = [] f = open('学生.txt') for line in f: line = line.replace('\n', '') student = tuple(line.split(' ')) students.append(student) id = input('输入待删学生的学号:') found = False for student in students: if (student[0] == id): found = True students.remove(student) print('恭喜:学生记录删除成功!') break if not found: print('学号为{}的学生没找到!'.format(id)) else: for student in students: for i in range(len(student)): print(student[i], end=' ') print() f = open('学生.txt', 'w') for i in range(len(students)): student = ' '.join(students[i]) + '\n' f.write(student) f.close() def login(): username = input('输入用户名:') password = input('输入密码:') if username == 'XT' and password == '2021': while True: print('\n学生管理系统') print('=' * 13) print('1.增加学生记录') print('2.查询学生记录') print('3.修改学生记录') print('4.删除学生记录') print('5.返回上级菜单') print('=' * 13) mc2 = int(input('输入菜单号:')) if mc2 == 1: add_student() elif mc2 == 2: query_student() elif mc2 == 3: modify_student() elif mc2 == 4: delete_student() else: break else: print('\n用户名或密码输入错误,请重新登录!\n') # 主程序 while True: print('用户登录') print('=' * 8) print('1.登录') print('2.退出') print('=' * 8) mc1 = int(input('输入菜单号:')) if mc1 == 1: login() elif mc1 == 2: print('\n谢谢使用本程序!\n') break
对于这个学生管理系统还是有些难度的,而且写的时候你要仔细,不然很容易出错。按照自己擅长的方式写,方便后续的改错。
python说难不难说简单不简单,主要是大家1要坚持去做才行。