欢迎来到我的CSDN技术博客!非常高兴能与你在Python的世界里相遇。无论你是刚接触代码的编程新手,还是寻求进阶的资深开发者,我都希望能通过这个小小的窗口,为你提供有价值的内容。
📝 关于本博客
这是一个专注于Python技术分享的原创社区。我会持续输出高质量的文章,帮助大家在数据科学、自动化及后端开发等领域共同成长。
💡 你将在这里看到什么?
为了让你快速了解本博客的定位,我将内容规划梳理为以下几个板块:
🐍 Python基础夯实
万丈高楼平地起。这里会有对核心语法、数据结构、常用内置库的深度解析,帮你扫除知识盲区,建立稳固的编程思维。
⚙️ 实战与自动化
理论终需落到实践。我会分享如何用Python爬取网络数据、办公自动化、开发效率脚本等实战案例,让代码真正为你工作。
🤖 人工智能与数据科学
聚焦热门领域,涵盖NumPy、Pandas等数据分析工具,以及机器学习、深度学习的基础原理与简单应用,带你领略AI的魅力。
🔧 开发技巧与避坑指南
"报错"是程序员的日常。我会总结开发中常见的Bug、实用的调试技巧以及代码优化方案,让你的开发之路走得更顺。
🤝 期待与你同行
编程是一场持续学习的旅程,这个博客将是我记录思考、分享经验的地方。
如果你对某篇文章有疑问,或是有想了解的技术方向,欢迎在评论区留言交流。你的每一次互动,都是对我最大的鼓励。
让我们从这里开始,一起探索Python的无限可能!
点个关注,不迷路。 让我们在技术的道路上,结伴而行,共同进步。
目录
一.yield语句
1.特点
有点像return,都是用来返回函数结果的,但是yield的特点是返回结果后,不会终止函数。
2.举例
python
def hello():
print("step 1")
yield 1
print("step 2")
yield 2
print("step 3")
yield 3
g = hello()
res = next(g)
print(res)
res = next(g)
print(res)
res = next(g)
print(res)
运行结果如下:

说白了就是yield虽然会返回结果,但是不会终止函数。通过next()函数继续让生成器(本质就是函数,带yield语句的函数)往下执行。
3.简化2的写法
python
def hello():
print("step 1")
yield 1
print("step 2")
yield 2
print("step 3")
yield 3
for res in hello():
print(res)
原理:
这里的for循环,等价于下面的这段代码
python# 1. 先创建生成器对象 gen = hello() # 2. 手动模拟 for 循环 while True: try: # 获取下一个 yield 的值 res = next(gen) # 打印这个值 print(res) except StopIteration: # 生成器没有 yield 了,退出循环 break
运行结果如下:

解读代码:
yield让函数变成可暂停的,每次for循环就让它从暂停处恢复,跑到下一个yield,并把这个yield的值给循环变量。
二.实战:打印平方数
1.要求
我们需要定义一个函数,往函数中传入n(比如5),那么此时这个函数需要依次打印0~4(共5个数字)的平方数。
举例:当n=5,函数输出的结果应该是0, 1, 4, 9, 16
2.写代码
python
def squares(count:int):
for n in range(count):
yield n**2
for num in squares(5):
print(num)
代码解析:
①range(n):生成一个可迭代对象,范围是0 ~ n-1
举例:range(5)的可迭代对象范围是0~4
②**
for循环会自动帮你不断next(),每次拿到yield的值就赋值给循环变量(此时是num),直到生成器耗尽。**
运行结果

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~