两点水

This commit is contained in:
347073565@qq.com
2017-12-22 16:47:33 +08:00
parent 1b69364df2
commit f856b62e6f
14 changed files with 42 additions and 40 deletions

View File

@@ -65,7 +65,7 @@ def my_function():
for i in range(10):
print ( i )
my_function()
my_function()
```
输出的结果:
@@ -91,7 +91,7 @@ def my_function():
for i in range(10):
yield i
print(my_function())
print(my_function())
```
输出的结果:
@@ -119,7 +119,7 @@ for x in fibon(1000000):
运行的效果:
![计算斐波那契数列的生成器](https://user-gold-cdn.xitu.io/2017/7/2/7b45fa54beb097a3037954b85a9a4d99)
![计算斐波那契数列的生成器](http://upload-images.jianshu.io/upload_images/2136918-304e50af22b787ce?imageMogr2/auto-orient/strip)
你看,运行一个这么打的参数,也不会说有卡死的状态,因为这种方式不会使用太大的资源。这里,最难理解的就是 generator 和函数的执行流程不一样。函数是顺序执行,遇到 return 语句或者最后一行函数语句就返回。而变成 generator 的函数,在每次调用 next() 的时候执行,遇到 yield语句返回再次执行时从上次返回的 yield 语句处继续执行。
@@ -136,9 +136,9 @@ def odd():
yield ( 5 )
o = odd()
print( next( o ) )
print( next( o ) )
print( next( o ) )
print( next( o ) )
print( next( o ) )
print( next( o ) )
```
输出的结果:

View File

@@ -4,4 +4,4 @@
# 目录 #
![草根学Python 迭代器和生成器](https://user-gold-cdn.xitu.io/2017/7/2/a11f2519b863b178ebc91fe2134aa7f6)
![草根学Python 迭代器和生成器](http://upload-images.jianshu.io/upload_images/2136918-b350c0e98ca47183?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)