递归函数,算法之二分法
1.Typora软件的使用、编程和编程语言、五大组成部分、三大核心硬件、操作系统2.while+continue、while+else、for循环、range关键字、数据类型内置方法3.字典,元组,元组内置方法、相关面试题 、 集合的内置方法 、字符编码 、文件操作 、函数4.文件相关操作,读写模式,操作方法,读操作优化,多用户注册和多用户下的登录功能5.成员、身份运算符、流程控制、分支结构、if嵌套、循环结构.....6.正则表达式、re模块7.pycharm如何使用、注释符号、变量、命名规范、变量值的三大特性、垃圾回收机制、基本数据类型8.str、list、dict、bool、tuple、set、程序与用户交互、格式化输出、基本运算符9.相对导入、绝对导入、软件开发目录规范10.字符串,列表的内置方法(增加、修改、删除) 、可变类型与不可变类型 、字典 ,元组,集合的内置方法、队列和栈的概念
11.递归函数,算法之二分法
12.python生成器之关键字yield、自定义range功能、其他常见的内置函数13.os模块、序列化模块、pickle和json的区别14.可迭代对象、迭代器对象、异常捕获、for循环的原理、迭代取值和索引取值的对比15.算法之二分法、三元表达式、列表生成式、字典生成式(了解)、匿名函数、常见的内置函数16.time模块、datetime模块、random模块、sys模块17.模块18.关于装饰器19.函数参数的两大分类,位置参数,默认参数,名称空间的概念,名字的查找顺序20.深浅拷贝、第三方模块的下载与安装、开发流程21.subprocess模块、hashlib模块、日志模块22.内部数据的存储原理、发展史、分类、解释器、编程软件pycharm23.员工管理系统、字符编码、文件操作24.文件内指针的移动 、内数据的修改 、函数(次函数非数学中的函数)(非常重要)25.魔术方法(内置方法),反射,异常之自定义异常聊聊递归函数和二分法
递归函数
什么是递归函数?
"""递归就是直接或者间接调用自己的函数就是递归函数"""
递归函数的优点和缺点
优点:
- 可以简化代码,使程序更加简洁。
- 可以解决一些复杂的问题,比如数学上的阶乘、斐波那契数列等。
缺点:
- 可能会导致栈溢出,因为每次调用函数都需要占用一定的内存空间。
- 可能会导致程序效率低下,因为需要多次进行函数调用。
练习题:
l = [1, [2, [3, [4, [5, [6, [7, [8, [9, [10, [11, [12, [13]]]]]]]]]]]]]
# 给打印出列表中的所有元素值,只打印除列表之外的元素,如果是列表不打印
#使用循环从列表中取出每个元素进行判断,如果该元素不是列表,则直接打印其值;
如果是列表,则不打印。
最后得到的输出结果为:1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13。
# for i in l:
# # 判断是不是列表
# if type(i) is int:
# print(i)
# else:
# # 说明是列表
# # 继续循环
# for j in i:
# # 判断j是不是列表
# if type(j) is int:
# print(j)
# else:
# # 说明是列表
# # 继续循环
# for k in j:
# # 判断k是不是列表
# if type(k) is int:
# print(k)
# else:
# ...
def get_num(l):
for i in l:
if type(i) is int:
print(i)
else:
get_num(i)
get_num(l)
算法之二分法
什么是算法?
二分法是一种高效的查找算法,通常应用于有序的列表或数组中。
具体来说,它将目标值与列表中间的元素进行比较,并根据比较结果排除掉目标值不可能存在的那一半元素,从而使查找范围缩小一半。
例如,假设我们要在一个有序数组中查找某个特定的数字。首先,我们会找到数组的中间元素并将其与目标值进行比较。如果中间元素等于目标值,那么查找成功;否则,如果中间元素大于目标值,就在左半边继续查找,反之则在右半边查找。
重复上述步骤直到找到目标值或者确定目标值不存在。
总结:
'''处理问题的高效办法'''
常见的算法:
···
二分法:查找数据的
冒泡算法:排序的
选择排序:排序的
...
数据结构相关的:
'''二分法的使用'''
l = [11, 2, 3,44, 567,34,78,89,111,23,34,45,56,78,66]
ll = [1,2,3,4,5,6,7,8,66,67,68,90,100,110,120]
# 找列表l中有没有66这个数字
"""for循环遍历,然后一个一个的比较"""
for i in l:
if i == 66:
print('在')
break
合集:
python基础
分类:
python快速入门
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现