学生管理v3-列表套字典版本

版权声明:共同努力,有不足的地方欢迎大家点出 https://blog.csdn.net/qq_42897012/article/details/82873094

之前的非函数版本 打印学生列表代码重复,如果要修改需要处处修改。while if 嵌套,代码越来越长,不容易维护。所以我们封装成函数版本。函数封装吧大问题分解成小问题

students = [{'name': '王', 'age':10, 'sex':'male'},
            {'name':'李浩', 'age':12, 'sex':'female'},
            {'name':'王十', 'age':12, 'sex':'male'}
            ]

def show_students():
    """打印学生列表"""
    print('行号\t姓名\t年龄\t性别')
    print('-'*50)
    for i in range(0,len(students)):
        stu_dict = students[i]
        name = stu_dict['name']
        age = stu_dict['age']
        sex = stu_dict['sex']
        print('{}\t\t{}\t{}\t\t{}'.format(i+1,name,age,sex))
    # for index,student in enumerate(students):
    #     print('%s\t\t%s\t\t%s\t\t%s'%(index+1,student['name'],student['age'],student['sex']))

def add_student():
    """添加学生"""
    new_name = input('请添加新姓名:')
    new_age = input('请添加学生的年龄')
    new_sex = input('请输入学生的性别')
    new_stu = {}
    new_stu['name'] = new_name
    new_stu['age'] = new_age
    new_stu['sex'] = new_sex
    students.append(new_stu)
    print('添加成功')

def update_student():
    """修改学生"""
    show_students()
    stu_num =input('选择要修改第几个:')
    if stu_num.isdigit() and int(stu_num) in range(0,len(students)):
        new_name = input('请输入修改后的姓名:')
        new_age = input('请输入修改后的学生年龄')
        new_sex = input('请输入修改后的学生性别')
        students[int(stu_num)-1]['name'] = new_name
        students[int(stu_num)-1]['age'] = new_age
        students[int(stu_num)-1]['sex'] = new_sex
        print('修改成功')
    else:
        print('输入错误')

def delete_student():
    """删除学生"""
    print("""删除-请选择操作编号
    1-按序号删除
    2-全部删除
    """)
    sub_num = int(input('请选择子操作:'))
    if sub_num == 1 :
        show_students()
        stu_num = int(input('删除第几个'))
        students.pop(int(stu_num)-1)
        print('删除成功')
    elif sub_num ==2:
        confirm = input('确认删除全部?(Y/N)')
        if confirm =='Y' or confirm =='y':
            students.clear()
            print('删除成功')
        elif confirm =='N' or confirm =='n':
            print('取消删除')
        else:
            print('删除失败')
def main():
    # 主程序 ,程序入口
        while True:
            print("""
            1-查看学生
            2-添加学生
            3-修改学生
            4-删除学生
            0-退出
            """)
            num = int(input('请输入操作编号:'))
            if num ==1:
                show_students()
            elif num ==2:
                add_student()
            elif num ==3:
                update_student()
            elif num ==4:
                delete_student()
            elif num ==0:
                break
# main()
if __name__ == '__main__':
    main()

猜你喜欢

转载自blog.csdn.net/qq_42897012/article/details/82873094