当前位置: 源码素材网 » Python教程 » 详情页

Python 使用input()和output()函数输入,输出5个学生的数据记录

  •   时间:2019-06-10
  • 概述:输入函数 学生管理

Python 学生管理小程序,我们使用Python代码来编写input()和output()输入函数,然后输出5个学生的数据记录,可以做成一个带有查询浏览录入功能的小程序,数据结构如果不用类还是字典好一点:

students={
    1:{
        'name':'张三',
        'score':{
            '数学':85.5,
            '英语':68.0,
            '语文':79.0,
            '化学':89.0
            }
        },
    2:{
        'name':'李四',
        'score':{
            '数学':70.5,
            '英语':88.0,
            '语文':82.0,
            '物理':90.0
            }
        },
    3:{
        'name':'王五',
        'score':{
            '数学':70.0,
            '英语':88.0,
            '语文':82.5,
            '计算机':100.0
            }
        }
    }
def menu():
    inputstr=''
    command={
        'r':record,
        'q':query,
        'b':browser,
        'e':exitsys
        }
    while inputstr!='e':
        print('-'*25)
        print('|','R录入'.center(18,' '),'|')
        print('|','Q查询'.center(18,' '),'|')
        print('|','B浏览'.center(18,' '),'|')
        print('|','E退出'.center(18,' '),'|')
        print('-'*25)
        inputstr=input('请选择:').lower()
        if inputstr in command:
            command[inputstr]()
        else:
            print('选择不正确!')
def print_stu(stu_id):
    print('姓名:{}   学号:{}'.format(students[stu_id]['name'],stu_id).center(20,'*'))
    for key ,value in students[stu_id]['score'].items():
        print('{:4} : {:3}'.format(key,value))
def record():
    while True:
        stu_id=len(students)+1
        score_set={}
        stu_name=input('请输入学生姓名:')
        while True:
            score_key=input('请输入课程名:')
            while True:
                try:
                    score_value=float(input('请输入成绩:'))
                except ValueError:
                    print('成绩必须是数字')
                    continue
                else:
                    score_set[score_key]=score_value
                    break
            if 'y'==input('输入Y退出成绩输入?').lower():
                break
        students[stu_id]=dict(name=stu_name,score=score_set)
        if 'y'==input('输入Y退出学生信息输入?').lower():
              break
def query():
    command={'1':query_name,'2':query_id}
    while True:
        select=input('请选择查询种类:1、按姓名,2、按学号')
        if select in ('1','2'):
            break
        else:
            print('选择输入不正确!')
    command[select]()
def query_id():
    while True:
        try:
            stu_id=int(input('请输入学生学号:'))
        except ValueError:
            print('学号必须是数字!')
            continue
        else:
            break
    if stu_id in students:
        print_stu(stu_id)
    else:
        print('没有找到学号为{}的学生信息!'.format(stu_id))
def query_name():
    stu_name=input('请输入学生姓名:')
    flag=False
    for key,value in students.items():
        if value['name']==stu_name:
            flag=True
            print_stu(key)
    if not flag:
        print('没有找到姓名为{}的学生信息!'.format(stu_name))
def browser():
    for stu_id in students:
        print_stu(stu_id)
def exitsys():
    print('谢谢使用,再见')
if __name__=='__main__':
    menu()
'''
#原程序
N = 3
#stu
    # num : string
    # name : string
    # score[4]: list
student = []
for i in range(5):
    student.append(['','',[]])
def input_stu(stu):
    for i in range(N):
        stu[i][0] = raw_input('input student num:\n')
        stu[i][1] = raw_input('input student name:\n')
        for j in range(3):
            stu[i][2].append(int(raw_input('score:\n')))
def output_stu(stu):
    for i in range(N):
        print '%-6s%-10s' % ( stu[i][0],stu[i][1] )
        for j in range(3):
            print '%-8d' % stu[i][2][j]
if __name__ == '__main__':
    input_stu(student)
    print student
    output_stu(student)
'''

    相关声明:

      若“Python 使用input()和output()函数输入,输出5个学生的数据记录”有损您的权益,请告之我们删除内容。
      部分文章来源于网络,版权归原作者所有。