练习

学生管理系统
'''
    1.添加学员
    2.修改学员
    3.查询学员
    4.删除学员
    0.退出程序
'''

# 添加学员函数
def add_student():
    # 输入一个学员的姓名
    name = input('请输入学员姓名:')
    # 把姓名添加大列表中
    student_list.append(name)
# 查询学员函数
def query_student():
    # 1.展示所有学员信息
    for x in range(0, len(student_list)):
        # 根据x的值,取出列表对应索引的数据
        name = student_list[x]
        print('序号:%s  姓名:%s' % (x, name))

# 封装判断选择学员序号是否在范围的函数
# 带返回值的函数 函数执行完成后,会返回一个结果,可以声明变量接收这个结果
def get_index(type):
    '''
    函数的功能描述:获取用户选择学员序号
    :param type: 选择序号的类型
    :return: 选择的序号
    '''
    index = input('请选择要%s的学员序号:'%type)
    # 装换为整数类型
    index = int(index)
    # 判断序号是否在范围内
    while index not in range(0, len(student_list)):
        index = input('选择的学员序号不存在,请重选:')
        index = int(index)
    # 返回选择的序号
    return index

# 修改学员函数
def update_student():
    '''
    :return: None
    '''
    # 1.查询学员信息
    query_student()
    # 2.选择要修改的学员序号
    index = get_index('修改')
    # 根据选择的索引取出对应的姓名
    name = student_list[index]
    # 获取修改后的名字
    new_name = input('请输入修改后的姓名(%s):' % name)
    # 根据索引修改列表中的数据
    student_list[index] = new_name

# 删除学员函数
def delete_student():
    # 1.查询学员信息
    query_student()
    # 2.选择要删除的学员序号
    index = get_index('删除')
    # 3.根据索引删除列表中的数据
    del student_list[index]


# 声明一个大列表,存放学员的姓名
student_list = []
while True:
    print('1.添加学员')
    print('2.修改学员')
    print('3.查询学员')
    print('4.删除学员')
    print('0.退出程序')
    # 选择操作
    num = input('请选择您的操作:')
    num = int(num)
    # 如果选择的数字不在0~5 继续选择
    while num not in range(0, 5):
        num = input('没有该选项,请重选:')
        num = int(num)
    if num == 1:
        # 调用添加学员函数
        add_student()
    elif num == 2:
        # 调用修改学员函数
        update_student()
    elif num == 3:
        # 查询学员信息
        query_student()
    elif num == 4:
        # 调用删除学员函数
        delete_student()
    else:
        break


# 晚上把学员管理系统升级到2.0版本
# 数据存储结构如下:
'''
# 大列表中嵌套小列表,小列表中存储一个学员的完整信息
student_list = [['张三','22','男','110'],['李四','22','男','110'],['王五','22','男','110']]
# 例如要取出张三这个学员的信息
# 1.取出张三这个学员的小列表
student1 = student_list[0]
# 2.再从小列表中根据索引取出姓名、年龄、性别、电话
name = student1[0]
age = student1[1]
sex = student1[2]
phone = student1[3]
'''
'''
# 大列表中嵌套小列表,小列表中存储一个学员的完整信息
student_list = [['张三','22','男','110'],['李四','22','男','110'],['王五','22','男','110']]
# 例如要取出张三这个学员的信息
# 1.取出张三这个学员的小列表
student1 = student_list[0]
# 2.再从小列表中根据索引取出姓名、年龄、性别、电话
name = student1[0]
age = student1[1]
sex = student1[2]
phone = student1[3]
'''

# 添加学员函数
def add_student():
    # 输入学员姓名、年龄、电话
    name = input('请输入学员姓名:')
    age = input('请输入学员年龄:')
    phone = input('请输入学员电话:')
    # 把name、age、phone放在小列表中
    student = [name, age, phone]
    # 把小列表添加到所有学员的大列表中
    # append(object)  insert(index, object)  extend(iterable)
    student_list.append(student)
    print('******添加学员成功******')

# 查询学员函数
def query_student():
    # 1.查询所有学员
    # 2.输入学员姓名查询学员  得到查询的学员的序号

    print('**********学员信息列表***********')
    # 遍历大列表
    for x in range(0, len(student_list)):
        # 根据x的值  从大列表中取出小列表
        student = student_list[x]
        # 从小列表中取出姓名、年龄、电话
        name = student[0]
        age = student[1]
        phone = student[2]
        print('序号:%s 姓名:%s 年龄:%s 电话:%s' % (x, name, age, phone))

# 修改学员函数
def update_student():

    # 判断是否有学员信息,如果没有,直接结束函数的执行
    if len(student_list) == 0:
        print('没有学员信息,无法进行修改操作!')
        # 强制结束函数的执行 return 下面的代码 都不会再执行了
        return
    # 1.查询学员信息
    query_student()
    # 2.选择要修改的学员序号
    num = input('请选择要修改的学员序号:')
    # 3.转换为整数
    num = int(num)
    # 4.判断选择学员序号是否在范围内
    while num not in range(0, len(student_list)):
        # 不在范围,重新选择
        num = input('没有该序号,请重选:')
        num = int(num)
    # 5.根据选择的序号取出对应的学员信息小列表
    student = student_list[num]
    new_name = input('请输入修改后的姓名(%s):'%student[0])
    new_age  = input('请输入修改后的年龄(%s):'%student[1])
    new_phone = input('请输入修改后的电话(%s):'%student[2])
    # 6.修改小列表中的数据
    student[0] = new_name
    student[1] = new_age
    student[2] = new_phone
    print('----修改数据完成----')

# 删除学员信息
# 1.根据学员序号删除  2.删除所有学员  3.根据学员姓名删除(有同名的,把同名的都删除)
def delete_student():

    if len(student_list) == 0:
        print('没有学员信息,无法执行删除操作!')
        return

    print('1.根据学员序号删除')
    print('2.删除所有学员')
    # 获取输入的内容 并转换为整数类型
    num = int(input('请选择您的操作:'))
    while num not in range(1, 3):
        num = int(input('选项错误,请重选:'))
    # 判断选择选项
    if num == 1:
        # 1.展示所有学员的信息
        query_student()
        # 2.选择删除的序号
        index = int(input('请输入要删除的学员序号:'))
        # 3.判断选择序号是否在范围内
        while index not in range(0, len(student_list)):
            index = int(input('没有该序号,请重选:'))
        # 4.删除指定索引的数据
        del student_list[index]
        # student_list.pop(index)
    else:
        # 确认删除
        rs = input('确定要删除所有信息?y(确定)/n(取消):')
        if rs == 'y':
            # 删除列表中的所有的数据
            student_list.clear()
        else:
            print('删除数据操作已取消!')




# 1.声明大列表,存放所有学员信息
student_list = []
# 2.while循环
while True:
    print('*******学员管理系统V2.0********')
    print('*******出品人:智游集团********')
    print('1.添加学员')
    print('2.查询学员')
    print('3.修改学员')
    print('4.删除学员')
    print('0.退出程序')
    print('******************************')
    # 选择操作
    num = input('请选择您的操作:')
    # 转换为整数
    num = int(num)
    # 判断选择的选项是否在范围内
    while num not in range(0, 5):
        # 重新选择
        num = input('没有该选项,请重选:')
        # 把字符串类型转换整数类型
        num = int(num)
    # 根据选择的选项执行对应的操作
    if num == 1:
        # 调用添加学员的函数
        add_student()
    elif num == 2:
        # 调用查询学员的函数
        query_student()
    elif num == 3:
        # 调用修改学员的函数
        update_student()
    elif num == 4:
        # 调用删除学员的函数
        delete_student()
    else:
        print('程序已结束!')
        break

results matching ""

    No results matching ""