先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
递归的起源
递归是一种算法,它利用函数的自身调用来解决问题。递归的历史可以追溯到古代的数学家和逻辑学家,如希腊哲学家亚里士多德和印度数学家阿耶尔巴塔。然而,递归算法的实际应用可以追溯到早期的计算机科学,尤其是在20世纪40年代和50年代的计算机发展初期。
在20世纪初,数学家David Hilbert提出了“希尔伯特问题”,其中包括一个著名的问题——哥德尔不完备定理。这个定理表明,任何一个形式化的系统都无法证明自身完备。这导致了一些数学家开始研究递归函数,因为递归函数是一种强大的工具,可以用来刻画数学中的可计算性概念。在20世纪40年代,递归理论被广泛研究,它为计算机科学的发展奠定了基础。
早期计算机(如ENIAC)是通过执行单个指令来执行操作的,因此递归算法在这些机器上的执行效率较低。然而,随着计算机硬件和编程语言的发展,递归算法变得更加普遍和有效。今天,递归算法被广泛用于计算机科学中的许多应用领域,如数据结构设计、图像处理、机器学习和自然语言处理。
什么是递归?
递归是一种解决问题的方法,其精髓在于将问题分解为规模更小的相同问题持续分解,直到问题规模小到可以用非常简单直接的方式来解决。
递归的问题分解方式非常独特,其算法方面的明显特征就是:在算法流程中调用自身。
递归为我们提供了一种对复杂问题的优雅解决方案,精妙的递归算法常会出奇简单令人赞叹。
问题:
给定一个列表,返回所有数的和列表中数的个数不定,需要一个循环和一个累加变量来迭代求和
def Listsum(nl):
sum = 0
for i in nl:
sum += i
return sum
print(Listsum([1,2,3,4]))
利用递归解决列表求和问题
程序很简单,但****假如没有循环语句 ?既不能用for,也不能用while还能对不确定长度的列表求和么?
递归三定律
1.结束条件
2.向基态前进
3.自己调用自己
递归应用-整数转换为任意进制数
我们用最熟悉的十进制分析下这个问题
十进制有十个不同符号: convString =0123456789"
比十小的整数,转换成十进制,直接查表就可以了: convString[n]
比十大的整数,想办法把比十大的整数拆成一系列比十小的整数,逐个查表
比如七百六十九,拆成七、六、九,查表得到769就可以了
所以,在递归三定律里,我们找到了“基,就是小于十的整数本结束条件”
拆解整数的过程就是向“基本结束条件”演进的过程
我们用整数除,和求余数两个计算来将整数一步步拆开除以****“进制基base(// base)对“进制基”求余数 (% base)
#n为转换的数字 base为进制数
def tostring(n,base):
coverstring = "0123456789"
if n < base :
return coverstring[n]
else:
return tostring(n // base , base) + coverstring[n % base]
print(tostring(1999,10))
递归可视化
画一个正方形
import turtle
t = turtle.Turtle()
#通过四次向右转90度画一个边长为100的正方形
for i in range(4):
t.forward(100)
t.right(90)
turtle.done()
画一个五角星
#画五角星
import turtle
t = turtle.Turtle()
t.pencolor("red")
t.pensize(3)
for i in range(5):
t.forward(100)
t.right(144)
t.hideturtle()
turtle.done()
画一个九边形
#画九边形
import turtle
t = turtle.Turtle()
t.pencolor("blue")
t.pensize(10)
for i in range(9):
t.forward(100)
t.left(320)
t.hideturtle()
turtle.done()
画圆形
#画圆形
import turtle
t = turtle.Turtle()
t.pencolor("blue")
t.pensize(10)
for i in range(1):
t.circle(180)
t.hideturtle()
turtle.done()
画一个等腰三角形
#画等腰三角形
import turtle
t = turtle.Turtle()
t.pencolor("blue")
t.pensize(10)
### 最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
![](https://img-blog.csdnimg.cn/d29631674929476f9c3b30f7ff58dff0.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)**
![img](https://img-blog.csdnimg.cn/img_convert/66b9b01eafe30fd783fafd387f62e9b1.png)
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
w_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ZlaTM0Nzc5NTc5MA==,size_16,color_FFFFFF,t_70)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)**
[外链图片转存中...(img-PIwMlYWs-1713435540695)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**