python基础练习-基于文本存取的学员管理’系统’
作者: 郑晓 分类: Python 发布于: 2013-11-26 19:30 浏览:16,112 评论(6)
这是python吧上一个吧友提出的问题,感觉自己可以用已学过的知识去做出来,就做了出来。 初学python,写的比较冗余和绕弯,估计过个半来月回来看会感觉写的就是一坨翔。。。。
题目如下:
设计一个学生基本信息系统
基本要求:设计一个Student类,属性至少包括学号、姓名、班级等信息,提供添加、查询删除操作。
1、添加:输入一条学生信息,存入student.txt文件中;
2、查询:能分别按学号、姓名、班级属性查询学生信息。
3、删除:根据学号删除学生信息
dbname = 'db.txt'
class Student :
#构造方法 输出提示信息、获取用户输入的命令
def __init__(self) :
print('''
************欢迎!************
* 添加:add number name age *
* 删除:delete number *
* 搜索:search number *
*****************************
''')
while 1:
inp = input("请输入命令:")
inp = inp.strip().split(' ')
if inp[0] == 'add': #调用添加方法
self.add(number=inp[1], name=inp[2], age=inp[3])
elif inp[0] == 'delete':
self.delete(inp[1])
elif inp[0] == 'search':
li = [x.split('=') for x in inp[1:]]
self.search(li)
else:
print('命令错误,请重新输入!')
#添加学生信息
def add(self,number,name,age) :
f = open(dbname, 'a')
f.write(str(number) + '|' + name + '|' + str(age)+'\n')
f.close()
#按number删除学生信息
def delete(self, number) :
f = open(dbname, 'r')
tmp = ''
for line in f:
line_list = line.strip().split('|')
if line_list[0] == number :
continue
tmp += line
f.close()
f = open(dbname, 'w')
f.write(tmp)
f.close()
print("成功删除")
#搜索符合相关条件的学生信息
def search(self,arg) :
f = open(dbname, 'r')
result = []
for line in f:
line_list = line.strip().split('|')
flag = 0
for con in arg:
if con[0] == 'all':
flag=1
break
if con[0] == 'number':
if line_list[0] == con[1] :flag=1
else:
flag=0
break;
if con[0] == 'name':
if line_list[1] == con[1] :flag=1
else:
flag=0
break;
if con[0] == 'age':
if line_list[2] == con[1] :flag=1
else:
flag=0
break;
if flag:
result.append(line_list)
f.close()
if len(result)>0:
print("搜索完成:")
print('\n'.join([' '.join(x) for x in result]))
else:
print("未找到符合条件的学生")
Student()
运行结果:
本文采用知识共享署名-非商业性使用 3.0 中国大陆许可协议进行许可,转载时请注明出处及相应链接。
本文永久链接: https://www.zh30.com/python-text-access-system.html
python基础练习-基于文本存取的学员管理’系统’:目前有6 条留言
他已经消失,但他却要顽固地留在你心里,成为记忆的一部分,时时刻刻提醒你,让你在将来的某一刻还会恍然大悟:原来我今天懂得幸福,只是因为曾经失去过你
不错的代码搜藏啦!
谢谢大神分享,支持哦
楼主博客做的挺漂亮
抢沙发 膜拜PHP大神
菜鸟而已。。