python学员管理系统
文章目录
- 一. 应用:学员管理理系统
- 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 步骤分析
- 显示功能界面
- 用户输入功能序号
- 根据⽤用户输入的功能序号,执行不同的功能(函数)
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学员管理系统相关推荐
- Python学员管理系统进阶版
Python学员管理系统进阶版 整合基础,使用面向对象的方式做学员管理系统 文章目录 Python学员管理系统进阶版 前言 一.系统需求 1.创建程序文件 2.书写程序 3.管理系统框架 二.功能函数 ...
- python⾯向对象学员管理系统
1. 系统需求 使⽤⾯向对象编程思想完成学员管理系统的开发,具体如下: 系统要求:学员数据存储在⽂件中 系统功能:添加学员.删除学员.修改学员信息.查询学员信息.显示所有学员信息.保存学员信息及退出系 ...
- 用python 开发合同管理系统_python3.6+django2.0 一小时学会开发一套学员管理系统demo...
1.在pycharm中新建project demo1 添加app01 点击create按钮完成新建 2.在demo项目目录下新建目录static,并在settings.py中追加代码: STATICF ...
- python简易学员管理系统
python简易学员管理系统 def info_print():print("请选择功能------------")print("1. 添加学员")print( ...
- python面相对象编程超市系统_python面向对象编程: 面向对象版学员管理系统
转载自https://www.cnblogs.com/LynHome/archive/2020/04/06/12650318.html 详细解读请参考https://www.cnblogs.com/b ...
- Python基础(十八):学员管理系统应用
文章目录 学员管理系统应用 一.系统简介 二.步骤分析 三.需求实现
- python选课管理系统_Python开发程序:选课系统
程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...
- Python学生管理系统代码
Python学生管理系统代码一览 复制即用 初学见谅 #python study # -*- coding: utf-8 -*-#学员信息 data = [{'id': ' 1','name': '辛 ...
- 子沐课堂——学员管理系统(前期准备+Model建立)
今天开始我们来做一个基于Flask+Jinja2+SqlAlchemy+xlrd+Layui+G2的学员管理系统. 环境配置 首先我们要安装好环境,才能进行下一步的操作. (1)Flask Flask ...
- ORM版学员管理系统
ORM版学员管理系统 班级表 表结构 class Class(models.Model):id = models.AutoField(primary_key=True) # 主键cname = mod ...
最新文章
- Vue 增加动态路由功能 【在原有系统上增加】
- 关系的三类完整性约束的描述
- Pair Project: Elevator Scheduler Report By Hu Renjun
- MySQL存储引擎之InnoDB
- 物联网的四种计算类型
- ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程
- Java 8 Friday Goodies:本地交易范围
- 华为android o适配名单,Android 12首批适配名单公布:没有华为、荣耀
- mysql join 与 cross join 效率_浅析Mysql Join语法以及性能优化
- 使用Word2010直接编辑、发布博客→博客园cnblogs
- delphi mysql变体类型_Delphi 2010学习笔记(8)---数据类型(顺序类型)---2011-01-19
- 苹果笔记本linux系统安装教程视频教程,苹果系统安装教程,小编教你苹果电脑怎么重装系统...
- 解决 java 程序中 CPU 占用率过高问题
- 原始数据哪里找?这些网站要用好!200个国内外数据网站大全
- spring cloud搭建教程
- 用笔记本做路由器共享4G流量
- Promise(一)介绍、fs读取文件、AJAX请求
- 【React】Mobx
- 阿里云mysql价格_阿里云超级计算mysql价格
- 2021年5月23日《一开口就让人喜欢你》读后感
热门文章
- 头条极速版-艳云脚本云控系统
- Guava---Splitter
- passenger 部署
- linux连接一加手机,How To Build CyanogenMod Android (oneplus/bacon) On Linux
- Facebook内战:关于欲望、天才和背叛的故事
- 2020智能营销领域最具商业合作价值企业盘点
- 插了T管引流,该注意点啥
- python爬虫:利用BeautifulSoup爬取链家深圳二手房首页的详细信息
- 洛谷blog传送门qwq
- sre_constants.error: unbalanced parenthesis