既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
return
else:
print('该学员不存在,修改失败')
def search_student_info():
“”“查询学员信息”“”
# 1.输入要查询学员的id值
stu_id = input(‘请输入要查询学员的id:’)
# 2.判断id值是否存在,如果存在则展示,如果不存在,则警告学员不存在
for stu_info in students_list:
if stu_info[‘id’] == stu_id:
print(
f’学员的学号是:{stu_info[“id”]}, 学员的姓名是:{stu_info[“name”]}, 学员的年龄是:{stu_info[“age”]}, 学员的手机号是:{stu_info[“mobile”]}')
return
else:
print(‘该学员不存在,查询失败’)
def show_students_info():
“”“展示所有学员信息”“”
for stu_info in students_list:
print(
f’学员的学号是:{stu_info[“id”]}, 学员的姓名是:{stu_info[“name”]}, 学员的年龄是:{stu_info[“age”]}, 学员的手机号是:{stu_info[“mobile”]}’
)
def exit_program():
# import sys
# # 退出当前程序,结束进程
# sys.exit()
exit()
def exit_program():
“”“结束程序”“”
# 通过控制变量结束死循环
global is_stop
# 在修改之前需要进行声明 ,修改的变量为全局变量
is_stop = True
# 展示功能界面
print_all_option()
# 引导用户输入功能序号,并获取序号
option = input(‘请输入您要执行功能的序号:’)
# 根据获取的序号分析要执行哪些功能
chose_option(option)
思考:学生管理系统,是不是需要输入6 才能退出 不然就一直询问您要输入的选项
这中情况下建议使用 while True 构造死循环
students_list = [
{‘id’: ‘001’, ‘name’: ‘xiaoming’, ‘age’: 18, ‘mobile’: ‘13833838338’},
{‘id’: ‘002’, ‘name’: ‘xiaohong’, ‘age’: 18, ‘mobile’: ‘13900000000’}
]
is_stop = False
while not is_stop:
# 展示功能界面
print_all_option()
# 引导用户输入功能序号,并获取序号
option = input('请输入您要执行功能的序号:')
# 根据获取的序号分析要执行哪些功能
choose_option(option)
# 方便展示,显示所有学员信息,开发完成后删除
# print(students\_list)
input()
死循环的退出方式有哪些?
break
return
exit()
控制变量
…
### 8、函数递归
* 函数内部调用函数本身
* 函数有明确的递归跳出条件
* 不超出最大调用深度
函数递归的三个必备条件
‘’’
1/函数体内部,调用函数本身
2/递归够明确的跳出条件
3/不能超出最大调用深度
‘’’
需求:
‘’’
func(1) = 1
func(2) = 1 + 2 = func(1) + 2
func(3) = 1 + 2 + 3 = func(2) + 3
func(4) = 1 + 2 + 3 + 4 = func(3) + 4
…
func(n) = 1 + 2 + 3 … + n = func(n-1) + n
‘’’
RecursionError: maximum recursion depth exceeded
这种方式无法跳出递归,所以在使用的时候就会无限递归下去
def func(n):
return func(n-1) + n
‘’’
func(1) = 1
func(2) = func(1) + 2
func(3) = func(2) + 3
func(4) = func(3) + 4
…
func(n) = func(n-1) + n
‘’’
def func(n):
if n == 1:
return 1
return func(n-1) + n
print(func(999))
Python中默认的最大调用深度,是1000 也就是在Python中函数最多嵌套1000层
最大调用深度是为了保证系统性能的,否则无限递归下去,一会内存就满了
最大调用深度可以调整,可以调整到非常大的数字只要系统性能跟得上
RecursionError: maximum recursion depth exceeded in comparison
注意事项:
在编程初期,尽量少使用递归,但是要理解递归的特性,别人写的递归函数也要能看懂
### 9、lambda函数
* 匿名函数,在函数定义时没有函数名
* 可以用变量保存,在变量之后添加括号即可调用
lambda表达式,也叫匿名函数
格式: lambda 参数: 返回值
需求: 根据传入的参数返回最大值 使用lambda函数书写
三目运算 : 条件成立时返回的代码 if 条件 else 条件不成立时返回的代码
max_num = lambda a, b: a if a > b else b
使用变量可以储存lambda函数
print(max_num(1, 2))
print(max_num(9, 2))
print(type(max_num)) # <class ‘function’>
def func():
print(‘abc’)
print(type(func)) # <class ‘function’>
通过对数据类型的查看,我们发现lambda和普通函数本质上是一样的,只不过在使用时构造更为简单
在使用lambda函数时可以不用变量接收
print((lambda a, b: a if a > b else b)(3, 4)) # 4
但是不适用变量接收,lambda函数只能使用一次,使用后集被释放,无法再次使用
lambda缺点: 没有办法书写负责的函数,因为其没有函数体,只有返回值,所以返回值后边只能书写一个表达式,lambda可读性极差
使用lambda完成递归(了解,一般不建议写复杂的代码)
func1 = lambda n: func1(n - 1) + n if n != 1 else 1
RecursionError: maximum recursion depth exceeded
超出最大调用深度,没有明确的递归跳出条件
print(func1(100))
lambda应用场景
可以用于一次性函数使用
可以作为函数的参数进行传递
list sort(key= )
lsit sort排序方法中的key所需要的参数就是一个函数,我们可以传入lambda表示
list1 = [{‘a’: 1}, {‘b’: 12}, {‘c’: 10}]
排序规则:根据字典的第一个键所对应的值进行排序
list1.sort(key=lambda x:list(x.values())[0])
格式: 列表.sort(key = lambda 每次传入的元素: 排序所依据的规则)
print(list1)
### 后记
![img](https://img-blog.csdnimg.cn/img_convert/3d8c167af5672d55caaaac5ce8e91ca8.png)
![img](https://img-blog.csdnimg.cn/img_convert/7a0587544458f9f59757688b0e8aacfd.png)
![img](https://img-blog.csdnimg.cn/img_convert/9537be58d678f12739f81c8dcfcab40b.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**
5792593819)]
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)**