Python练习

在这里插入图片描述

import os
key = ['学号','姓名','年龄','性别','出生年月','地址','电话','E-mail','其他']

class student(object):
    def open_file():
        with open('information.txt', 'a+') as f:
            pass
    def add(key):
        imformation_dict = {}
        with open('information.txt', 'a+') as f:
            for item in key:
                imformation_dict[item] = input('请输入你的%s'%(item))
                f.write(imformation_dict[item] + ' ')
            f.write('\n')
    def find(key):
        find_index = int(input("""
                    1.按学号查询
                    2.按姓名查询
        """))
        if find_index == 1:
            find_num = input('请输入所查询学号')
            index = key.index('学号')
            with open('information.txt', 'r+') as f:
                for line in f.readlines():
                    line = line.split()
                    if line[index] == find_num:
                        print('你查询的学习信息为:')
                        for i in range(8):
                            print('%s : %s'%(key[i],line[i]))
                        return
                    else:
                        print('没有所查询学生信息')
        if find_index == 2:
            find_name = input('请输入所查询姓名')
            index = key.index('姓名')
            with open('information.txt', 'r+') as f:
                for line in f.readlines():
                    line = line.split()
                    if line[index] == find_name:
                        print('你查询的学习信息为:')
                        for i in range(8):
                            print('%s : %s' % (key[i], line[i]))
                        return
                    else:
                        print('没有所查询学生信息')
    def mod(key):
        mod_num = input('请输入所修改学号')
        index = key.index('学号')
        dict = {}
        with open('information.txt', 'r') as f:
            for line in f.readlines():
                line = line.split()
                if line[index] == mod_num:
                    print('你要修改的学习信息为:')
                    for i in range(8):
                        print('%s : %s' % (key[i], line[i]))
        y_n = input('是否确认修改 y/n')
        if y_n == 'y' or y_n == 'Y':
            print('1')
            with open('information.txt', 'r') as f:
                print('2')
                for line in f.readline():
                    print('3')
                    with open('information1.txt', 'a+') as f1:
                        print('4')
                        print(line)
                        print(mod_num)
                        if  mod_num in line :
                            print('5')
                            for item in key:
                                dict[item] = input('请输入你修改后的%s' % (item))
                                f1.write(dict[item] + ' ')
                            f1.write('\n')
                        else:
                            f1.write(line + '\n')
                    f.close()
                    os.remove('information.txt')
                    os.rename('information1.txt','information.txt')
                    print('修改成功')
                    return

    def del_num(key):
        del_num = input('请输入要删除的学号')
        index = key.index('学号')
        with open('information.txt', 'r') as f:
            with open('information1.txt', 'a+') as f1:
                for line in f.readlines():
                    line = line.split()
                    if line[index] == del_num:
                        pass
                    else:
                         for item in line:
                            f1.write(item + ' ')
                         f1.write('\n')
        os.remove('information.txt')
        os.rename('information1.txt','information.txt')

    def look(key):
        with open('information.txt', 'r') as f:
            for line in f.readlines():
                line = line.split()
                for i in range(8):
                    print(key[i]+ ':' + line[i])
    def main():
        choice = int(input("""
            1.添加学生信息
            2.查找学生信息
            3.修改学生信息
            4.删除学生信息
            5.浏览学生信息
        请选择:
        """))
        if choice == 1:
            student.add(key)
        if choice == 2:
            student.find(key)
        if choice == 3:
            student.mod(key)
        if choice == 4:
            student.del_num(key)
        if choice == 5:
            student.look(key)
stu = student()
while True:
    student.main()

在这里插入图片描述

在这里插入图片描述

"""
	'学号', '姓名', '性别', '家庭住址', '联系电话', '语文',
	        '数学', '外语', '平均成绩', '考试名次', '同学互评分',
	        '品的成绩', '任课教师评分', '综合测评总分', '综合测评名次'
	        """
	import os
	key = ['学号', '姓名', '性别', '家庭住址', '联系电话']
	score = ['语文','数学', '外语','平均成绩']
	score_list = []
	def take_second(list):
	    return list[0]
	def information():
	    student_list = []
	    for i in range(3):
	        student_imf = []
	        for item in key:
	            imf = input('请输入学生%s的%s'%(i,item))
	            if 'q' in imf:
	                break
	            else:
	                student_imf.append(imf)
	        student_list.append(student_imf)
	    print(student_list)
	    student_list.sort(key = take_second)
	    print(student_list)
	    with open('student_imf.txt','a+') as f:
	        for item in student_list:
	            for item1 in item :
	                f.write(item1 + ' ')
	            f.write('\n')
	
	def insert():
	    new = []
	    for item in key:
	        imf = input('请输入学生的%s' % (item))
	        new.append(imf)
	    student_list = [new]
	    with open('student_imf.txt','r') as f:
	        for line in f.readlines():
	            line = line.split()
	            student_list.append(line)
	    student_list.sort(key=take_second)
	    with open('student_imf.txt', 'w') as f:
	        for item in student_list:
	            for item1 in item:
	                f.write(item1 + ' ')
	            f.write('\n')
	def del_student():
	    del_num = input('请输入要删除的学生学号:')
	    new_list = []
	    with open('student_imf.txt', 'r') as f:
	        for line in f.readlines():
	            line = line.split()
	            if line[0] == del_num:
	                pass
	            else:
	                new_list.append(line)
	    with open('student_imf.txt', 'w') as f:
	        for item in new_list:
	            for item1 in item:
	                f.write(item1 + ' ')
	            f.write('\n')
	
	def look_inf():
	    with open('student_imf.txt', 'r') as f:
	        for line in f.readlines():
	            line = line.split()
	            for i in range(len(line)):
	                print('%s :%s'%(key[i],line[i]))
	def add_score():
	    num = 0
	    with open('student_imf.txt','r') as f:
	        for name in f.readlines():
	            name = name.split()
	            list = []
	            for item in range(3):
	                list.append(input('请输入%s的%s'%(name[1],score[item])))
	            list.append('0')
	            for scores in list[:-1]:
	                scores = int(scores)
	                num += scores
	                score_pj = round(num/3,2)
	                list[3] = score_pj
	            num = 0
	            score_list.append(list)
	    with open('student_imf.txt','r') as f:
	        with open('score.txt','w') as f1:
	            line = f.readlines()
	            for item in range(len(score_list)):
	                f1.write(line[item].strip('\n'))
	                for item1 in score_list[item]:
	                    f1.write(str(item1)+ ' ')
	                f1.write('\n')
	def show_score():
	    num = input('请输入要显示的学号:')
	    with open('score.txt','r') as f:
	        for line in f.readlines():
	            if num == line.split()[0]:
	                print(line)
	                return
	            else:
	                print('没有此学生')
	                return
	def mod_score():
	    list = []
	    num = input('请输入要修改的学号:')
	    with open('score.txt', 'r') as f:
	        for line in f.readlines():
	            if num == line.split()[0]:
	                for item in range(3):
	                    list.append(input('请输入要修改的%s' % (score[item])))
	                    with open('score1.txt', 'a+') as f1:
	                        for item in list:
	                            f1.write(item + ' ')
	                        f1.write('\n')
	
	
	            else:
	                with open('score1.txt','a+') as f1:
	                    f1.write(line)
	    os.remove('score.txt')
	    os.rename('score1.txt','score.txt')
	def main():
	    choice = input("""
	          A.学生信息处理
	          B.学生数据处理
	          C.学生信息输出
	    """)
	    if choice == 'A':
	        A_choice = input("""
	                1.输入学生信息
	                2.插入学生信息
	                3.删除学生信息
	                4.浏览学生信息
	        """)
	        if A_choice == '1':
	            information()
	        if A_choice == '2':
	            insert()
	        if A_choice == '3':
	            del_student()
	        if A_choice == '4':
	            look_inf()
	    if choice == 'B':
	        B_choice = input("""
	                        1.录入学生成绩
	                        2.计算总分测评
	                        3.修改学生成绩
	                        4.浏览学生成绩
	                """)
	        if B_choice == '1':
	            add_score()
	        if B_choice == '2':
	            pass
	        if B_choice == '3':
	            mod_score()
	        if B_choice == '4':
	            show_score()
	    # if choice == 'C'
	    #     im_print()
	while True:
	    main()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值