b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

python 变量命名规范#是注释。通过空格进行缩进,当一行(7)

电脑杂谈  发布时间:2018-02-10 22:04:08  来源:网络整理

普通函数是顺序执行,遇到return或最后一行函数语句就会返回;

而变为generator的函数,每次调用next()的时候执行,遇到yield中断并返回值,再次调用next()时从上次yield语句处继续执行。

>>> def fib(max):
...     n, a, b = 0, 0, 1
...     while n < max:
...         yield b
...         a, b = b, a + b
...         n = n + 1
...     return 'done'
...
>>> g = fib(6)  # 生成generator对象
>>> g
<generator object fib at 0x1024e0bf8>
>>> next(g)     # 调用next()函数不断获取后一个返回值
1
>>> next(g)
1
>>> next(g)
2
>>> next(g)
3
>>> next(g)
5
>>> next(g)
8
>>> next(g)     # 此时 n = max, 没有yield可以执行了,所有调用就报错了
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration: done

>>> for n in fib(6):    # 也可以使用for循环进行generator的迭代
...     print(n) 

直接作用于for循环的数据类型有以下几种:

集合数据类型:list,tuple,dict,set,str等

generator:包括和带yield的函数

这些可作用for循环的对象统称为可迭代对象:Iterable。可通过isinstance()判断一个对象是否是Iterable:

不仅可作用于for循环,还可被next()不断调用返回下一个值,直至抛出StopIteration,这类对象成为迭代器:Iterator,也可使用isinstance进行判断:

迭代器Iterator表示的是一个数据流,可将数据流看做是一个有序队列,但不能提前知道队列的长度,只能通过next()函数实时按需计算下一个元素的值。

函数名是指向函数的变量,对于函数abs(),可将abs函数名看做变量,它指向可以计算绝对值的函数。另外,函数本身可以赋值给其他变量:

>>> abs(-10)        # 调用求绝对值的函数
10
>>> abs             # abs是函数本身
<built-in function abs>
>>> f=abs           # 将函数本身赋值给变量
>>> f
<built-in function abs>
>>> f(-10)          # 通过变量来调用函数。直接调用abs()和调用变量f()相同
10

既然变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称为高阶函数。函数式编程就是指这种高度抽象的编程范式。例如:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-70754-7.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...