Python为学生信息管理项目添加两个功能,保存信息到文件,从文件中读取数据,以行为单位存储数据, 用空格或逗号作为姓名,年龄和成绩的分隔符

 为学生信息管理项目添加两个功能:

       9)  保存信息到文件(si.txt)

       10) 从文件中读取数据(si.txt)

     (建议: 以行为单位存储数据, 用空格或逗号作为姓名,年龄和成绩的分隔符)

代码如下:

main.py

from menu import *

from student_info import *

def main():

L=[]

L2=[]

while True:

q = menue()

if q == 'q':

exit()

elif q == '1':

L += input_student()

elif q == '2':

output_student(L)

elif q == '3':

modify(L)

elif q == '4':

delete(L)

elif q == '5':

L2 = sorted(L,key=(lambda x: x['score']),reverse=True)

output_student(L2)

elif q == '6':

L2 = sorted(L,key=(lambda x: x['score']))

output_student(L2)

elif q == '7':

L2 = sorted(L,key=(lambda x: x['age']),reverse=True)

output_student(L2)

elif q == '8':

L2 = sorted(L,key=(lambda x: x['age']))

output_student(L2)

elif q == '9':

save_student(L)

elif q == '10':

L = read_student(L)

main()

input()

menue.py

def menue():

print('+-----------------------------------------+')

print('| 1)添加学生信息                          |')

print('| 2)查看所有学生信息                      |')

print('| 3)修改学生的成绩                        |')

print('| 4)删除学生信息                          |')

print('| 5)输出按成绩高至低排序                  |')

print('| 6)输出按成绩低至高排序                  |')

print('| 7)输出按年龄高至低排序                  |')

print('| 8)输出按年龄低至高排序                  |')

print('| 9)保存信息到文件(si.txt)                |')

print('| 10)从文件中读取数据(si.txt)             |')

print('| q)退出                                  |')

print('+-----------------------------------------+')

q = input('请选择:')

return q

student_info.py


def output_student(L):

tmp ={}

p=0

for l in L:

for i in l:

if i not in tmp:

tmp[i] = len(str(l[i]))

else:

tmp[i] = tmp[i] if tmp[i] > len(str(l[i])) else len(str(l[i]))

tmp['name'] = tmp['name']  if tmp['name'] > len('name') else len('name')

tmp['age'] = tmp['age']  if tmp['age'] > len('age') else len('age')

tmp['score'] = tmp['score']  if tmp['score'] > len('score') else len('score')

s1=''

for i in tmp:

s1 += '+'+('-'*(tmp[i]+2))

s1 += '+'

print(s1)

s2 = ''

for i in tmp:

s2 += '|'+(i.center(tmp[i]+2))

s2 += '|'

print(s2)

print(s1)

for l in L:

s3=''

for i in l:

s3 += '|'+(str(l[i]).center(tmp[i]+2))

s3+='|'

print(s3)

print(s1)

def input_student():

L=[]

while True:

name = input('姓名:')

if name == '':

break

age = int(input('年龄:'))

score = int(input('成绩:'))

L.append({'name':name,'age':age,'score':score})

return L

def delete(L):

name = input('输入要删除的姓名:')

for k,v in enumerate(L):

if v['name'] == name:

del L[k]

print('已将 ',v['name'],' 删除')

return

print('未能找到您输入的姓名!')

def modify(L):

name = input('输入要修改的姓名:')

for k,v in enumerate(L):

if v['name'] == name:

s = '您要将 '+v['name']+' 分数修改为:'

f = int(input(s))

L[k]['score'] = f

print('已将 ',v['name'],' 成绩修改为 ',f)

return

print('未能找到您输入的姓名!')

def save_student(L):

s = ''

for d in L:

s += d['name'] + ',' + str(d['age']) + ',' + str(d['score']) + '\n'

f = open('g:/Python/xuesheng/si.txt','w+')

f.write(s)

def read_student(L):

f = open('g:/Python/xuesheng/si.txt')

for s in f.readlines():

s = s.strip()

l = s.split(',')

l[1],l[2] = int(l[1]),int(l[2])

L.append({'name':l[0],'age':l[1],'score':l[2]})

return L


运行结果:

Python为学生信息管理项目添加两个功能,保存信息到文件,从文件中读取数据,以行为单位存储数据, 用空格或逗号作为姓名,年龄和成绩的分隔符


质量分割线=====================================

那么 我们来改写一下这个学生管理程序添加一个第9条保存信息到文件和第10条从文件中读取数据 然后呢是一行为单位存储数据用空格或者, 作为姓名年龄和成绩的分割符 然后我们先在这个们留点p y里面添加酒和10的一个选项的一个提示信息然后再回到慢点p y里面添加一个标识符 q等于等于九然后谢谢的话是然后在alif Q等于等于10然后再显现些可怕死 但具体那么怎么操作啊然后我们先就说定义一个把它所能换成普特2255rmb 是TNT保存学生 然后把这个 给我吗 爸爸要传进去 然后再补拍的瑞的Happy ubnt也是传入一个我们就不是长老们谁要等了又等于他 应该是要加的语法没有家的女孩 这样子才能符合我们的现实逻辑 然后这两个方法我们需要去世的odenton卜里面去添加这个方法 到最后天下第1f scv13还见student.com 先把它打印出来看一下 顺便能也把这个瑞的人作为的 然后 运行看一下我们输入9 他现在是一个空那么我们先要添加学生信息就ff14一封闭的然后两岁两份然后在1万首随便输输入空好然后再在选酒泉酒之后他们他给我们输出了这个写信息 那么是每一个字典每一个字典是一个学生的信息然后 然后我们可以先得到他的信息 偶然 这里面很显然我们的用户和举报 我们需要两层的for语句后的一大要我们再报 不 说什么呢 oK Go号 mean enumerate 这个可得的对象传入小的然后回车 混在土伦的看一下效果 不论的事 顺德 k, 保存退出再运行然后再添加 姓名年龄姓名随便输出空然后我们在选择酒他给我们打印的是姓名 kTV 指引 就直接直接附近的附近的 oK OK 他是一个这样的东西然后我们再 等于 方括号, 我们在数据进行选择添加我随便说随便随便随便说我们在选择酒这个时候姓名年龄分数新年龄分数 这些东西就想要的就差不多是得到了 农村 陈数家的家等着小循环里面加等于 地方括号k 然后再加上一个小, 为什么可以补这样可能可以直接把直接还是短语 的里面的那样吗 加上, 再加上这个加上看这是年龄能赚钱技巧大全部分加上就看看就行了吗对吧审计师sceo 我们 在 这里讨论的 那个加的 我们在选择酒 他看看好搞错了的英语 英特尔不能转为了这个错不错 那么 就给他转回注创造硬的 房东不喜欢 年龄和成绩转换为什么好 选择一天添加 请注意休息 我们在选择酒 这个时候OK我们这个自创意达到了墙的效果和我们接下来需要写入 需要写入到文件里面去 我们把它写入到文件里面去我们先回顾的一个open open的是一个22秒的也不是T让我儿子 小六你好我们现在可以拿 不得这个还是的哟 既然下面又学会了绝对路径 虽然觉得我们再重新运行程序添添加 帮助选择酒 顺则就能尝到了与手册 他说没有设备文件 有关于W的方式w bw加的方式来重新运行程序 我们在选择酒 我们看一下是不是然后它被成功写入进来了 他们他这些内容被成功了写入进了我们的文件 然后我们这一步就完成了然后我们再 没有读取文件好等于 open open这个文件然后呢就没人解释就行了然后 然后呢我们需要提取它里面的东西 看看好 我们怎么个提法呢 那我们先不 回使用 f点给他们 我想问的一个问题是我们看一看然后 这个穿衣服不要用这个, 转换 再看眼效果 那么他是多了一个高 多了一个感恩我们总办的向导弹去掉 s点 我们要去掉 str IP asp.net iP 还是等于把他的空格先去掉怎么做 重新运行一下 空格当个我去掉了 那么舒服那也得到了然后 我们要把中间的 没有中间的第1个元素, 没有今天的天安门科颜氏对于应酬要重建的第1个元素都毫不要充电的第2个元素 免费游戏看效果 他最后面两个就是他的年龄和成绩就给我转化成了 转换成了这个整型数那么最为QQ我们之前的没有任何的差距 然后我们再大要点append 那那我们照样是之前的这个格式字典的一个歌试听一个靓女我们把它换成这个还要里面的0 那只能换成你们的成绩了换成了里面的保存 这个时候呢我们再退出再重新运行添加 添加姓名和都要命年龄50岁成绩80分幸运 那么年龄40成绩99年无忧的然后连名60成绩其实然后 卖那么然后 60岁就是分 oK然后我们查看一下去休息然后我们再按一下实不虚 后天我们再查看 是否真的被读取进来了 大功告成好OK

最后编辑于:2020/04/18作者: 牛逼PHP

发表评论