zoukankan      html  css  js  c++  java
  • python基础--函数加强

    一. 应用:学员管理系统

    1.1 系统简介

    需求:进入系统显示系统功能界面,功能如下:

    • 1、添加学员
    • 2、删除学员
    • 3、修改学员信息
    • 4、查询学员信息
    • 5、显示所有学员信息
    • 6、退出系统

    系统共6个功能,用户根据自己需求选取。

    1.2 步骤分析

    1. 显示功能界面

    2. 用户输入功能序号

    3. 根据用户输入的功能序号,执行不同的功能(函数)

      3.1 定义函数

      3.2 调用函数

    1.3 需求实现

    1.3.1 显示功能界面

    定义函数print_info,负责显示系统功能。

    def print_info():
        print('-' * 20)
        print('欢迎登录学员管理系统')
        print('1: 添加学员')
        print('2: 删除学员')
        print('3: 修改学员信息')
        print('4: 查询学员信息')
        print('5: 显示所有学员信息')
        print('6: 退出系统')
        print('-' * 20)
        
        
    print_info()
    

    1.3.2 用户输入序号,选择功能

    user_num = input('请选择您需要的功能序号:')
    

    1.3.3 根据用户选择,执行不同的功能

    if user_num == '1':
        print('添加学员')
    elif user_num == '2':
        print('删除学员')
    elif user_num == '3':
        print('修改学员信息')
    elif user_num == '4':
        print('查询学员信息')
    elif user_num == '5':
        print('显示所有学员信息')
    elif user_num == '6':
        print('退出系统')
    

    工作中,需要根据实际需求调优代码。

    1. 用户选择系统功能的代码需要循环使用,直到用户主动退出系统。
    2. 如果用户输入1-6以外的数字,需要提示用户。
    while True:
        # 1. 显示功能界面
        print_info()
        
        # 2. 用户选择功能
        user_num = input('请选择您需要的功能序号:')
    
        # 3. 根据用户选择,执行不同的功能
        if user_num == '1':
            print('添加学员')
        elif user_num == '2':
            print('删除学员')
        elif user_num == '3':
            print('修改学员信息')
        elif user_num == '4':
            print('查询学员信息')
        elif user_num == '5':
            print('显示所有学员信息')
        elif user_num == '6':
            print('退出系统')
        else:
            print('输入错误,请重新输入!!!')
    

    1.3.4 定义不同功能的函数

    所有功能函数都是操作学员信息,所有存储所有学员信息应该是一个全局变量,数据类型为列表

    info = []
    

    1.3.4.1 添加学员

    • 需求分析
    1. 接收用户输入学员信息,并保存

    2. 判断是否添加学员信息

      2.1 如果学员姓名已经存在,则报错提示

      2.2 如果学员姓名不存在,则准备空字典,将用户输入的数据追加到字典,再列表追加字典数据

    3. 对应的if条件成立的位置调用该函数

    • 代码实现
    def add_info():
        """ 添加学员 """
        # 接收用户输入学员信息
        new_id = input('请输入学号:')
        new_name = input('请输入姓名:')
        new_tel = input('请输入手机号:')
        
    
        # 声明info是全局变量
        global info
    
        # 检测用户输入的姓名是否存在,存在则报错提示
        for i in info:
            if new_name == i['name']:
                print('该用户已经存在!')
                return
    
        # 如果用户输入的姓名不存在,则添加该学员信息
        info_dict = {}
        
        # 将用户输入的数据追加到字典
        info_dict['id'] = new_id
        info_dict['name'] = new_name
        info_dict['tel'] = new_tel
        
        # 将这个学员的字典数据追加到列表
        info.append(info_dict)
        
        print(info)
    

    1.3.4.2 删除学员

    • 需求分析

    按用户输入的学员姓名进行删除

    1. 用户输入目标学员姓名

    2. 检查这个学员是否存在

      2.1 如果存在,则列表删除这个数据

      2.2 如果不存在,则提示“该用户不存在”

    3. 对应的if条件成立的位置调用该函数

    • 代码实现
    # 删除学员
    def del_info():
        """删除学员"""
        # 1. 用户输入要删除的学员的姓名
        del_name = input('请输入要删除的学员的姓名:')
    
        global info
        # 2. 判断学员是否存在:如果输入的姓名存在则删除,否则报错提示
        for i in info:
            if del_name == i['name']:
                info.remove(i)
                break
        else:
            print('该学员不存在')
    
        print(info)
    

    1.3.4.3 修改学员信息

    • 需求分析
    1. 用户输入目标学员姓名

    2. 检查这个学员是否存在

      2.1 如果存在,则修改这位学员的信息,例如手机号

      2.2 如果不存在,则报错

    3. 对应的if条件成立的位置调用该函数

    • 代码实现
    # 修改函数
    def modify_info():
        """修改函数"""
        # 1. 用户输入要修改的学员的姓名
        modify_name = input('请输入要修改的学员的姓名:')
    
        global info
        # 2. 判断学员是否存在:如果输入的姓名存在则修改手机号,否则报错提示
        for i in info:
            if modify_name == i ['name']:
                i['tel'] = input('请输入新的手机号:')
                break
        else:
            print('该学员不存在')
        
        print(info)
    

    1.3.4.4 查询学员信息

    • 需求分析
    1. 用户输入目标学员姓名

    2. 检查学员是否存在

      2.1 如果存在,则显示这个学员的信息

      2.2 如果不存在,则报错提示

    3. 对应的if条件成立的位置调用该函数

    • 代码实现
    # 查询学员
    def search_info():
        """查询学员"""
        # 1. 输入要查找的学员姓名:
        search_name = input('请输入要查找的学员姓名:')
    
        global info
        # 2. 判断学员是否存在:如果输入的姓名存在则显示这位学员信息,否则报错提示
        for i in info:
            if search_name == i['name']:
                print('查找到的学员信息如下:----------')
                print(f"该学员的学号是{i['id']}, 姓名是{i['name']}, 手机号是{i['tel']}")
                break
        else:
            print('该学员不存在')
    

    1.3.4.5 显示所有学员信息

    • 需求分析

    打印所有学员信息

    • 代码实现
    # 显示所有学员信息
    def print_all():
        """ 显示所有学员信息 """
        print('学号	姓名	手机号')
        for i in info:
            print(f'{i["id"]}	{i["name"]}	{i["tel"]}')
    

    1.3.4.6 退出系统

    在用户输入功能序号6的时候要退出系统,代码如下:

        ......
        elif user_num == '6':
            exit_flag = input('确定要退出吗?yes or no')
            if exit_flag == 'yes':
                break
    

    全部代码

    def print_info():
        print('-' * 20)
        print('欢迎登录学员管理系统')
        print('1: 添加学员')
        print('2: 删除学员')
        print('3: 修改学员信息')
        print('4: 查询学员信息')
        print('5: 显示所有学员信息')
        print('6: 退出系统')
        print('-' * 20)
    
    
    # print_info()
    # 添加学员信息的函数
    info = []
    def add_info():
        '''添加学员'''
        # 接收用户输入学员信息
        new_id = input('请输入学号:')
        new_name = input('请输入姓名:')
        new_tel = input('请输入手机号:')
        # 声明info是全局变量
        global info
        # 检测用户输入的姓名是否存在,存在则报错提示
        for i in info:
            if new_name == i['name']:
                print('该用户已存在:')
                return
        # 如果用户输入的姓名不存在,则添加该学员信息
        info_dict = {}
        # 将用户输入的数据追加到字典
        info_dict['id'] = new_id
        info_dict['name'] = new_name
        info_dict['tel'] = new_tel
        # 将这个学员的字典数据追加到列表
        info.append(info_dict)
        print(info)
    
    def del_info():
        '''删除学员'''
        # 1,用户输入要删除的学员的姓名
        del_name = input('请输入要删除的学员的姓名:')
        global info
        # 2,判断学员是否存在:如果存在则删除,如果不存在则提示报错
        for i in info:
            if del_name == i['name']:
                info.remove(i)
                break
        else:
             print('该学员不存在')
        print(info)
    
    def modify_info():
        '''修改函数'''
        # 1, 用户输入要修改的学员姓名
        modify_name = input('请输入要修改的学员姓名:')
        global info
        # 2, 判断学员是否存在,如果存在则修改,如果不存在则报错
        for i in info:
            if modify_name == i['name']:
                i['tel'] = input('请输入新的手机号')
                break
        else:
            print('该学员不存在')
        print(info)
    
    def search_info():
        '''查询学员'''
        # 1,输入要查找的学员姓名:
        search_name = input('请输入要查找的学员姓名:')
        global info
        # 2,判断学员是否存在,如果存在则返回信息,否则报错提示
        for i in info:
            search_name == i['name']
            print('查找的学员信息如下:----------')
            print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")
            break
        else:
            print('该学员不存在')
    
    def print_all():
        '''显示所有学员信息'''
        print('学号	姓名	手机号')
        for i in info:
            print(f'{i["id"]}	{i["name"]}	{i["tel"]}')
    while True:
        # 1,显示功能界面
        print_info()
        # 2,用户选择功能
        user_num = input('请输入您需要的序号:')
        # 3,根据用户选择,执行不同的功能
        if user_num == '1':
            # print('添加学员')
            add_info()
        elif user_num == '2':
            # print('删除学员')
            del_info()
        elif user_num == '3':
            # print('修改学员信息')
            modify_info()
        elif user_num == '4':
            # print('查询学员信息')
            search_info()
        elif user_num == '5':
            # print('显示所有学员信息')
            print_all()
        elif user_num == '6':
            print('退出系统')
        else:
            print('输入错误,请重新输入!')
    
  • 相关阅读:
    scrapy中selenium的应用
    Django的锁和事务
    redis
    【leetcode】187. Repeated DNA Sequences
    【leetcode】688. Knight Probability in Chessboard
    【leetcode】576. Out of Boundary Paths
    【leetcode】947. Most Stones Removed with Same Row or Column
    【leetcode】948. Bag of Tokens
    【leetcode】946. Validate Stack Sequences
    【leetcode】945. Minimum Increment to Make Array Unique
  • 原文地址:https://www.cnblogs.com/chenpeng03/p/13626725.html
Copyright © 2011-2022 走看看