收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
正文
next: 作用于迭代器, 依次返回下一个元素
如果是自定义class, 可以通过函数__iter__, next, 定义这两种函数的行为.
iter只能用于可迭代的对象, 如下图, 标量数字"1024"就不能用来生成数字.
上图中, 试图将数字标量"1024"变成迭代器, 就会发生报错, 显示是"不可迭代的"
iter将可迭代的对象变成迭代器, 然后可以用next依次返回元素, 越界时, 会报错StopIteration, 类似于单向链表, 只能得到下一个元素, 不能返回上一个元素.
如上图所示, 通过iter, 将字符串"lihaitao"变成了一个迭代器, 然后通过next函数, 从左到右, 依次返回了单个字符, 最后会发现, 如果元素取完, 还要使用next函数的话, 就会报错.
为什么要这么做? 依次取出元素有什么好处?
1 节省内存, 每次生成一个元素, 而不是先计算出所有的元素, 保存下来.
2 提速. 因为内存更小
吐槽一下: 当然了, 因为这个例子特别简单, 好像无法体现出这些好处. 先记住, 以后接触到更复杂的例子, 就能体会到了.
生成器: 返回的对象是迭代器
生成器本质上定义了迭代器中元素的生成机制.
生成器分成了两种:
a 生成表达式
比如, (i * 2 for i in range(10))
上图的例子中, 通过for循环, 依次取得里面的元素.
好像没有什么特别的, 与列表生成器[i * 2 for i in range(10)] (注意一个是圆括号, 另一个是方括号)的结果好像是一样的.
结果是一样, 但是内部的原理差别很大.
(i * 2 for i in range(10))里面的原理是:
1 i 取值为0, 然后乘以2, 然后被for循环取出来, 打印.
2 i 取值为1, 然后乘以2, 然后被for循环取出来, 打印.
3 以此类推, 知道i取值为最后一个元素, 然后乘以2, 然后被for循环取出来, 打印.
[i * 2 for i in range(10)]里面的原理是:
先计算出所有的值: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
然后使用for循环, 依次取出这些值, 依次打印.
一句话概括的话, (i * 2 for i in range(10))是一边计算, 一边被取出, 而[i * 2 for i in range(10)]是先全部被计算出来, 然后被取出.
生成器的另一种形式:
b 生成函数
通过yield来返回下一个元素.
比如生成著名的斐波那契数列:
封面图片就是斐波那契数列的一个应用.
基于"生成函数", 生成斐波那契数列的代码:
运行结果:
看起来和普通函数差不多, 没有了return, 多了个关键词yield.
yield与return不同, 碰到了return, 函数直接结束了, 只能返回"0".
而yield是决定了每次next后返回什么元素.
调用第一次next的时候, 程序运行, 直到第一次碰到yield, 此时a = 0, next的返回元素就是0, 然后会保存程序所有的当前状态,
下一次调用next的时候, 在上次保存的状态下继续运行, 直到又碰到了yield, 此时a = 1, 因此, 第二次next返回的元素是1
以此类推.
如果打个类比的话, yield的那一行可以作为断点, 碰到了断点, 程序就中断了, 直到下一个next, 就继续执行代码.直到碰到下一个断点(yield)
最后,作为一个IT的过来人,我自己整理了一些学习资料,希望对你们有帮助。
在学习python中有任何困难不懂的可以微信扫描下方优快云官方认证二维码加入python交流学习
多多交流问题,互帮互助,这里有不错的学习教程和开发工具。
(python兼职资源+python全套学习资料)
点此免费领取:优快云大礼包:《python学习路线&全套学习资料》免费分享
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
文末有福利领取哦~
👉一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
👉二、Python必备开发工具
👉三、Python视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉 四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(文末领读者福利)
👉五、Python练习题
检查学习结果。
👉六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉因篇幅有限,仅展示部分资料,这份完整版的Python全套学习资料已经上传
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
的技术提升。**
如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-7WyYSZeY-1713812711944)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!