文章目录

  • 一. 应用:学员管理理系统
    • 1.1 系统简介
    • 1.2 步骤分析
  • 二、递归:
    • 2.1、递归应用场景
    • 2.2、递归特点
    • 2.3、函数返回值
    • 2.4、递归应用:
    • 2.5、递归的执行流程
    • 2.6、lambda 表达式
      • 2.6.1、语法
      • 2.6.2、参数形式
        • 1、无参数
        • 2、一个参数
        • 3、默认参数/缺省参数
        • 4、可变参数:*args
        • 5、可变参数:**kwargs (字典)
        • 6、带判断的lambda:两个数字比大小
        • 7、列表按字典key值排序
      • 2.7、高阶函数
        • 2.7.1、案例
    • 2.8、内置高级函数

一. 应用:学员管理理系统

1.1 系统简介

需求:进⼊入系统显示系统功能界面,功能如下:
添加学员
删除学员
修改学员信息
查询学员信息
显示所有学员信息
退出系统
系统共6个功能,用户根据自己需求选取。

1.2 步骤分析

  1. 显示功能界面
  2. 用户输入功能序号
  3. 根据⽤用户输入的功能序号,执行不同的功能(函数)
    3.1 定义函数
    3.2 调用函数
    1.3 需求实现
#1、定义功能函数
def print_info():print('-' * 20)print('欢迎登录学员管理理系统')print('1: 添加学员')print('2: 删除学员')print('3: 修改学员信息')print('4: 查询学员信息')print('5: 显示所有学员信息')print('6: 退出系统')print('-' * 20)print_info()user_num = input('请选择您需要的功能序号:')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('退出系统')while True:
#显示功能界面print_info()#用户输入功能序号use_num = input('请输入功能序号:')#按照用户输入的功能序号,执行不同的功能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:exit_flag = input('确定要退出吗? yes or no')if exit_flag =='yes':breakprint('退出')else:print('输入的功能序号有误')#等待存储所有学员信息
info=[]
#添加学员信息的函数
def add_info():"""添加学员函数"""# 1、用户输入:学号、姓名、手机号new_id=input('请输入学号: ')new_name = input('请输入姓名: ')new_tel = input('请输入手机号: ')#2、判断已存在报错global info#2.1不允许姓名重复:判断用户输入的姓名和列表里面for i in info:if new_name == i['name']:print('此用户已经存在')return#2.2如果输入姓名不存在,添加数据info_dict ={}#字典新增数据info_dict['id']=new_idinfo_dict['name'] = new_nameinfo_dict['tel'] = new_telprint(info_dict)#列表追加字典info.append(info_dict)print(info)def del_info():"""删除学员"""deL_name= input('请输入要删除的学员的姓名:')global infofor i in info:if del_name == i['name']:info.remove(i)breakelse: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('请输入新的手机号:')breakelse:print('该学员不存在')print(info)def search_info():"""查询学员"""#用户输入学员姓名search_name = input('请输入要查找的学员姓名:')#坚持学员是否存在:存在打印这个学员信息,不存在则提示global info#遍历infofor i in info:if search_name ==i[name]:print('查找到的学员信息如下。。。')print(f"该学员的学号是{i['id']},姓名是{i['name']},手机号是{i['tel']}")breakelse:print('查无此人。。')#显示所有学员信息
def print_all():"""显示所有学员信息"""#打印学员提示字print('学号\t姓名\t手机号')#打印所有学员的数据for i in info:print(f"{i['id']}\t{i['name']}\t{i['tel']}")

二、递归:

2.1、递归应用场景

​ 1、遍历文件夹下面所有文件 2、算法

2.2、递归特点

​ 1、函数内部自己调用自己 2、必须有出口

2.3、函数返回值

def return_num():return 100result=return_num()
print(result)

2.4、递归应用:

​ 3以内数字累计和

def sum_numbers(num):if num==1:return 1return num + sum_numbers(num-1)result=sum_numbers(3)
print(result)

2.5、递归的执行流程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2WAXNXW0-1632968069789)(C:\Users\ldw\AppData\Roaming\Typora\typora-user-images\image-20210917102820454.png)]

2.6、lambda 表达式

一个函数只有一句代码,一个返回值,可以使用lambda简化

2.6.1、语法

lambda 参数列表:表达式

fn2 = lambda : 100
print(fn2)    #lambda内存地址
print(fn2())  #调用函数fn1 = lambda a,b :a+b
print(fn1(1,2))

2.6.2、参数形式

1、无参数
fn1 =lambda:100
print(fn1())
2、一个参数
fn1 = lambda a:a
print(fn1('hello world'))
3、默认参数/缺省参数
fn1 = lambda a,b,c =100:a+b+c
print(fn1(10,20))
4、可变参数:*args
fn1 = lambda *args:args
print(fn1(10,20,30))
5、可变参数:**kwargs (字典)
fn1 = lambda **kwargs:kwargs
print(fn1(name='10',age='20'))
6、带判断的lambda:两个数字比大小
fn1 = lambda a,b:a if a>b else b
print(fn1(1000,500))
7、列表按字典key值排序
students = [{'name':'tom','age':20},{'name':'rose','age':19},{'name':'jack','age':22},
]
#升序
students.sort(key=lambda x:x['age'])
print(students)
#降序
students.sort(key=lambda x:x['age'],reverse=True)
print(students)

2.7、高阶函数

2.7.1、案例
def sum_num(a,b,f):return f(a)+f(b)
result =sum_num(-1,5,abs)
print(result)result =sum_num(1.3,1.5,round)
print(result)

2.8、内置高级函数

1、map()

map(func,lst) 将传入的函数变量func作用到list变量的每个元素中,并将结果组成新的迭代器返回

list1 =[1,2,3,4,5]
def func(x):return x**2result = map(func,list1)print(result)
print(list(result))

2、reduce()

reduce(func,lst) 其中func必须有两个参数。每次func计算的结果继续和序列的下一个元素做累计计算

import functools
list1 =[1,2,3,4,5,6,7]def func(a,b):return a+b
result = functools.reduce(func,list1)
print(result)

3、filter()

filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回filter对象。如果要转换为列表,可以使用list()来转换

list1 =[1,2,3,4,5,6,7,8,9,10]
def func(x):return x%2 ==0
result=filter(func,list1)
print(result)
print(list(result))

python学员管理系统相关推荐

  1. Python学员管理系统进阶版

    Python学员管理系统进阶版 整合基础,使用面向对象的方式做学员管理系统 文章目录 Python学员管理系统进阶版 前言 一.系统需求 1.创建程序文件 2.书写程序 3.管理系统框架 二.功能函数 ...

  2. python⾯向对象学员管理系统

    1. 系统需求 使⽤⾯向对象编程思想完成学员管理系统的开发,具体如下: 系统要求:学员数据存储在⽂件中 系统功能:添加学员.删除学员.修改学员信息.查询学员信息.显示所有学员信息.保存学员信息及退出系 ...

  3. 用python 开发合同管理系统_python3.6+django2.0 一小时学会开发一套学员管理系统demo...

    1.在pycharm中新建project demo1 添加app01 点击create按钮完成新建 2.在demo项目目录下新建目录static,并在settings.py中追加代码: STATICF ...

  4. python简易学员管理系统

    python简易学员管理系统 def info_print():print("请选择功能------------")print("1. 添加学员")print( ...

  5. python面相对象编程超市系统_python面向对象编程: 面向对象版学员管理系统

    转载自https://www.cnblogs.com/LynHome/archive/2020/04/06/12650318.html 详细解读请参考https://www.cnblogs.com/b ...

  6. Python基础(十八):学员管理系统应用

    文章目录 学员管理系统应用 一.系统简介 二.步骤分析 三.需求实现

  7. python选课管理系统_Python开发程序:选课系统

    程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...

  8. Python学生管理系统代码

    Python学生管理系统代码一览 复制即用 初学见谅 #python study # -*- coding: utf-8 -*-#学员信息 data = [{'id': ' 1','name': '辛 ...

  9. 子沐课堂——学员管理系统(前期准备+Model建立)

    今天开始我们来做一个基于Flask+Jinja2+SqlAlchemy+xlrd+Layui+G2的学员管理系统. 环境配置 首先我们要安装好环境,才能进行下一步的操作. (1)Flask Flask ...

  10. ORM版学员管理系统

    ORM版学员管理系统 班级表 表结构 class Class(models.Model):id = models.AutoField(primary_key=True) # 主键cname = mod ...

最新文章

  1. Vue 增加动态路由功能 【在原有系统上增加】
  2. 关系的三类完整性约束的描述
  3. Pair Project: Elevator Scheduler Report By Hu Renjun
  4. MySQL存储引擎之InnoDB
  5. 物联网的四种计算类型
  6. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
  7. Java 8 Friday Goodies:本地交易范围
  8. 华为android o适配名单,Android 12首批适配名单公布:没有华为、荣耀
  9. mysql join 与 cross join 效率_浅析Mysql Join语法以及性能优化
  10. 使用Word2010直接编辑、发布博客→博客园cnblogs
  11. delphi mysql变体类型_Delphi 2010学习笔记(8)---数据类型(顺序类型)---2011-01-19
  12. 苹果笔记本linux系统安装教程视频教程,苹果系统安装教程,小编教你苹果电脑怎么重装系统...
  13. 解决 java 程序中 CPU 占用率过高问题
  14. 原始数据哪里找?这些网站要用好!200个国内外数据网站大全
  15. spring cloud搭建教程
  16. 用笔记本做路由器共享4G流量
  17. Promise(一)介绍、fs读取文件、AJAX请求
  18. 【React】Mobx
  19. 阿里云mysql价格_阿里云超级计算mysql价格
  20. 2021年5月23日《一开口就让人喜欢你》读后感

热门文章

  1. 头条极速版-艳云脚本云控系统
  2. Guava---Splitter
  3. passenger 部署
  4. linux连接一加手机,How To Build CyanogenMod Android (oneplus/bacon) On Linux
  5. Facebook内战:关于欲望、天才和背叛的故事
  6. 2020智能营销领域最具商业合作价值企业盘点
  7. 插了T管引流,该注意点啥
  8. python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
  9. 洛谷blog传送门qwq
  10. sre_constants.error: unbalanced parenthesis