python函数编写学生管理系统

python函数编写学生管理系统

添加学生信息
def add_info():  # 添加学生信息
    # 1.创建新信息
    new_id = int(input('请输入学号:'))
    new_name = input('请输入姓名:')
    new_gender = input('请输入性别:')
    new_tel = input('请输入手机号:')
    # 2.判断输入的信息是否重复,若重复则返回已存在,重新输入
    # 2.1 判断输入的id在info中是否存在
    # 2.1.1 info是全局变量,函数内修改要global处理
    global info
    # id是单个字典中的key,因此先遍历info,再对比判断
    for i in info:
        if new_id == i['id'] and new_name == i['name'] and new_gender == i['gender'] and new_tel == i['tel']:
            print('输入的信息已存在,请重新输入!!!')
            # return作用:判断完成,终止后面执行的代码
            return

    # 创建字典接收数据
    new_info = {'id': new_id, 'name': new_name, 'gender': new_gender, 'tel': new_tel}
    # 若不重复则录入单个信息进字典,然后添加进info
    info.append(new_info)
    print(info)
删除学生信息
def del_info():  # 删除学生信息
    # 1.输入要删除的学号和名字
    del_id = int(input('请输入要删除的学号:'))
    del_name = input('请输入要删除的名字:')
    # 2.查找指定信息,确认是否存在,若存在继续判断是否删除,若不存在,返回用户不存在
    # 2.1 全局化info,然后遍历查找判断
    global info
    for i in info:
        if del_id == i['id'] and del_name == i['name']:
            print(i)
            print('确认是否删除信息,Y删除,N取消')
            while True:
                answer = input('请输入:')
                if answer == 'Y':
                    info.remove(i)
                    print('已删除!')
                    break
                elif answer == 'N':
                    print('返回主页面')
                    return
                else:
                    print('输入有误,请重新输入')
        else:
            print('用户不存在,请重新输入!')
    print(info)

修改学生信息
#修改学生信息
def change_info():
    # 1.输入查找的信息
    change_id = int(input('请输入要修改的学生信息学号:'))
    # 2.判断输入的指定信息是否存在,
    # 2.0 global info 处理 遍历查找
    global info
    for i in info:
        # 2.1若存在,打印该信息详情,确认信息
        if change_id == i['id']:
            print(i)
            # 确认是否修改
            print('是否确认修改?Y确认,N取消')
            # 若输入的不算Y,N 则循环重新输入
            while True:
                answer = input('请选择:')
                if answer == 'Y':
                    # 用函数代替显示代码
                    print_change()
                    # 选择修改内容错误后继续循环选择
                    while True:
                        temp = int(input('请输入要修改的内容序号:'))
                        if temp == 1:
                            i['id'] = input('请输入新id:')
                            print(i)
                            return
                        elif temp == 2:
                            i['name'] = input('请输入新name:')
                            print(i)
                            return
                        elif temp == 3:
                            i['gender'] = input('请输入新gender:')
                            print(i)
                            return
                        elif temp == 4:
                            i['tel'] = input('请输入新tel:')
                            print(i)
                            return
                        else:
                            print('输入序号有误,请重新输入序号!')
                elif answer == 'N':
                    print('返回主页面')
                    return
                else:
                    print('输入有误,请重新输入')
    # 2.2若不存在,返回用户不存在,重新操作。
    print('输入的学号不存在,请重新操作!!')
查询学生信息
def find_info():  # 查找信息
    global info
    # 1.输入要查找的信息  例如id
    find_id = int(input('请输入要查找的id:'))
    # 2.根据输入的信息,遍历info
    for i in info:
        # 3.查找到则返回对应数据
        if find_id == i['id']:
            print(f'该学生id为{i["id"]},姓名为{i["name"]},性别为{i["gender"]},电话为{i["tel"]}')
            return
    # 没有则返回不存在
    print('查找的id不存在')
查看所有学生信息
def all_info():  # 查看所有信息
    print('-------学生信息表---------')
    print('学号\t姓名\t性别\t电话')
    global info  # 全局化
    for i in info:
        print(f'{i["id"]}\t{i["name"]}\t{i["gender"]}\t{i["tel"]}')
退出管理系统
# -在未选择序号6之前,对应功能执行后,应当继续重新选择功能。(循环)
while True:
    # 1.输出主功能页面
    main_print()
    # 2.输入对应功能序号
    num = int(input('请输入对应功能序号:'))
    # 3.执行对应序号的功能--定义对应功能函数
    if num == 1:
        add_info()
    elif num == 2:
        del_info()
    elif num == 3:
        change_info()
    elif num == 4:
        find_info()
    elif num == 5:
        all_info()
    elif num == 6:    # 退出循环系统
        flag = input('确认要退出吗?请输入yes or no ')
        if flag == 'yes':
            break
    else:
        print('输入的序号有误,请重新输入')
完整代码
#函数练习—----制作学生信息管理系统—----
"""
需求:
1.输出主功能页面
    1.1添加学生信息
    1.2删除学生信息
    1.3修改学生信息
    1.4查询学生信息
    1.5查看所有学生信息
    1.6退出管理系统
2.输入对应功能序号
3.执行对应序号的功能
"""


def main_print():  # 主页面显示
    print('------请选择功能--------')
    print('1.添加学生信息')
    print('2.删除学生信息')
    print('3.修改学生信息')
    print('4.查询学生信息')
    print('5.查看所有学生信息')
    print('6.退出管理系统')
    print('-' * 20)


# 创建空列表保存所有信息数据,将单个学生信息放入字典info = [{},{},{}]
info = []


def add_info():  # 添加学生信息
    # 1.创建新信息
    new_id = int(input('请输入学号:'))
    new_name = input('请输入姓名:')
    new_gender = input('请输入性别:')
    new_tel = input('请输入手机号:')
    # 2.判断输入的信息是否重复,若重复则返回已存在,重新输入
    # 2.1 判断输入的id在info中是否存在
    # 2.1.1 info是全局变量,函数内修改要global处理
    global info
    # id是单个字典中的key,因此先遍历info,再对比判断
    for i in info:
        if new_id == i['id'] and new_name == i['name'] and new_gender == i['gender'] and new_tel == i['tel']:
            print('输入的信息已存在,请重新输入!!!')
            # return作用:判断完成,终止后面执行的代码
            return

    # 创建字典接收数据
    new_info = {'id': new_id, 'name': new_name, 'gender': new_gender, 'tel': new_tel}
    # 若不重复则录入单个信息进字典,然后添加进info
    info.append(new_info)
    print(info)


def print_change():
    print('输入1:修改id')
    print('输入2:修改name')
    print('输入3:修改gender')
    print('输入4:修改tel')


def del_info():  # 删除学生信息
    # 1.输入要删除的学号和名字
    del_id = int(input('请输入要删除的学号:'))
    del_name = input('请输入要删除的名字:')
    # 2.查找指定信息,确认是否存在,若存在继续判断是否删除,若不存在,返回用户不存在
    # 2.1 全局化info,然后遍历查找判断
    global info
    for i in info:
        if del_id == i['id'] and del_name == i['name']:
            print(i)
            print('确认是否删除信息,Y删除,N取消')
            while True:
                answer = input('请输入:')
                if answer == 'Y':
                    info.remove(i)
                    print('已删除!')
                    break
                elif answer == 'N':
                    print('返回主页面')
                    return
                else:
                    print('输入有误,请重新输入')
        else:
            print('用户不存在,请重新输入!')
    print(info)


def change_info():
    # 1.输入查找的信息
    change_id = int(input('请输入要修改的学生信息学号:'))
    # 2.判断输入的指定信息是否存在,
    # 2.0 global info 处理 遍历查找
    global info
    for i in info:
        # 2.1若存在,打印该信息详情,确认信息
        if change_id == i['id']:
            print(i)
            # 确认是否修改
            print('是否确认修改?Y确认,N取消')
            # 若输入的不算Y,N 则循环重新输入
            while True:
                answer = input('请选择:')
                if answer == 'Y':
                    # 用函数代替显示代码
                    print_change()
                    # 选择修改内容错误后继续循环选择
                    while True:
                        temp = int(input('请输入要修改的内容序号:'))
                        if temp == 1:
                            i['id'] = input('请输入新id:')
                            print(i)
                            return
                        elif temp == 2:
                            i['name'] = input('请输入新name:')
                            print(i)
                            return
                        elif temp == 3:
                            i['gender'] = input('请输入新gender:')
                            print(i)
                            return
                        elif temp == 4:
                            i['tel'] = input('请输入新tel:')
                            print(i)
                            return
                        else:
                            print('输入序号有误,请重新输入序号!')
                elif answer == 'N':
                    print('返回主页面')
                    return
                else:
                    print('输入有误,请重新输入')
    # 2.2若不存在,返回用户不存在,重新操作。
    print('输入的学号不存在,请重新操作!!')


def find_info():  # 查找信息
    global info
    # 1.输入要查找的信息  例如id
    find_id = int(input('请输入要查找的id:'))
    # 2.根据输入的信息,遍历info
    for i in info:
        # 3.查找到则返回对应数据
        if find_id == i['id']:
            print(f'该学生id为{i["id"]},姓名为{i["name"]},性别为{i["gender"]},电话为{i["tel"]}')
            return
    # 没有则返回不存在
    print('查找的id不存在')


def all_info():  # 查看所有信息
    print('-------学生信息表---------')
    print('学号\t姓名\t性别\t电话')
    global info  # 全局化
    for i in info:
        print(f'{i["id"]}\t{i["name"]}\t{i["gender"]}\t{i["tel"]}')


# -在未选择序号6之前,对应功能执行后,应当继续重新选择功能。(循环)
while True:
    # 1.输出主功能页面
    main_print()
    # 2.输入对应功能序号
    num = int(input('请输入对应功能序号:'))
    # 3.执行对应序号的功能--定义对应功能函数
    if num == 1:
        add_info()
    elif num == 2:
        del_info()
    elif num == 3:
        change_info()
    elif num == 4:
        find_info()
    elif num == 5:
        all_info()
    elif num == 6:    # 退出循环系统
        flag = input('确认要退出吗?请输入yes or no ')
        if flag == 'yes':
            break
    else:
        print('输入的序号有误,请重新输入')
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Deng872347348

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值