函数加强

简介: 在我们日常开发中,如果要遍历一个文件夹下的所有文件,通常使用递归来实现;

目标


  • 应用:学员管理系统
  • 递归
  • lambda表达式
  • 高阶函数


一,应用学员管理系统


1.1系统简介


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


  • 添加学员
  • 删除学员
  • 修改学员信息
  • 查询学员信息
  • 显示学院信息
  • 退出系统


1.2步骤分析


def info_print():
    print('请选择如下功能:----------------')
    print('1:添加学员')
    print('2: 删除学员')
    print('3: 修改学员信息')
    print('4: 查询学员信息')
    print('5: 显示所有学员信息')
    print('6: 退出系统')
    print('-'*20)
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():
    """删除学员信息"""
    del_name=input('请要输出删除的学员的名字')
    global info
    #判断删除的名字是否存在,存在删除,不存在报错
    for i in info:
        if del_name==i['name']:
            info.remove(i)
            break
    else:
         print('该学员不存在')
    print(info)
def modif_info():
    """修改学员"""
    modif_name=input('请要输出修改的学员的名字')
    #查找学员是否存在,存在修该学员信息,否则报错
    for i in info:
        if modif_name==i['name']:
            i['tel']=input('请输入新的手机号')
            break
    else:
         print('该学员不存在')
    print(info)
def seach_info():
    seach_name = input('请要输出修改的学员的名字')
    # 查找学员是否存在,存在修该学员信息,否则报错
    global  info
    for i in info:
        if seach_name == i['name']:
            print('该学院的信息如下')
            print(f"该学员的id{i['id']},姓名{i['name']},{i['tel']}")
            break
    else:
        print('该学员不存在')
    print(info)
def print_all():
    print('学号\t姓名\t手机号')
    for i in info:
        print(f"{i['id']}\t{i['name']}\t{i['tel']}")
while True:
    #显示功能界面
    info_print()
    #用户输入功能序号
    user_num=int(input('请输入功能序号'))
    #按照用户输入得序号,执行不同功能
    # 根据用户输入的序号执行不同的功能
    if user_num == 1:
        # 添加学员
        print('添加学员')
        add_info()
    elif user_num == 2:
        # 删除学员
         print('删除学员')
         del_info()
    elif user_num == 3:
        # 修改学员信息
        print('修改学员信息')
        modif_info()
    elif user_num == 4:
        # 查询学员信息
        print('查询学员信息')
        seach_info()
    elif user_num == 5:
        # 显示学员信息
        print('显示所有学员信息')
        print_all()
    elif user_num == 6:
        # 退出系统
        exit_flag=input('确定要退出吗?yes or no')
        if exit_flag=='yes':
            print('退出系统')
            break
    else:
        print('请输入1-6之间得数字')


二、 递归


2.1递归的应用场景


递归是一种编程思想,应用场景:


1在我们日常开发中,如果要遍历一个文件夹下的所有文件,通常使用递归来实现;


2在后续的算法中很多算法都离不开递归,例如快速排序


2.1.1递归的特点


  • 函数内部自己调用自己
  • 必须有出口


def sum_number(i):
    if i==1:
        return 1
    return i+sum_number(i-1)
resoult=sum_number(3)
print(resoult)


相关文章
|
27天前
|
算法 编译器 C语言
函数—C(下)
函数—C(下)
28 0
|
27天前
|
程序员 C语言 Python
函数—C(上)
函数—C(上)
25 0
|
1月前
|
存储 编译器 Serverless
C++系列十:函数
C++系列十:函数
|
4月前
|
前端开发 JavaScript
Less的函数的介绍
Less的函数的介绍
25 0
|
4月前
|
算法 编译器
函数(2)
函数(2)
26 0
|
4月前
|
机器学习/深度学习
函数的使用
任务1 统计小组一门课程的总分及平均分。
27 1
|
10月前
基本初等函数 对数函数
基本初等函数 对数函数
54 0
|
SQL 分布式计算 关系型数据库
not_in函数致错
Not in 函数-致错 我们开发当中有些业务逻辑会用到not in()这个函数, 岗位角度:不管是后端开发还是大数据开发还是数据分析师… 技术角度:不管是Mysql、Hive、Maxcompute…
121 0
十、详解函数柯里【下】
柯里化是函数的一个高级应用,想要理解它并不简单。因此我一直在思考应该如何更加表达才能让大家理解起来更加容易。 通过上一个章节的学习我们知道,接收函数作为参数的函数,都可以叫做高阶函数。我们常常利用高阶函数来封装一些公共的逻辑。 这一章我们要学习的柯里化,其实就是高阶函数的一种特殊用法。
125 0