第6章 抽象

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010819416/article/details/82319418

6.1 懒惰是一种美德

6.2 抽象和结构

6.3 自定义函数

# 自定义函数
def fibs(num):
    result = [0,1]
    for i in range(num - 2):
        result.append(result[-2] + result[-1])
    return result

print(fibs(10))
print(fibs(5))

6.3.1 给函数编写文档

# 自定义函数
def fibs(num):
    'test function des'
    result = [0,1]
    for i in range(num - 2):
        result.append(result[-2] + result[-1])
    return result
>>> fibs.__doc__
'test function des'
>>> help(fibs)
Help on function fibs in module __main__:

fibs(num)
    test function des

>>> 

6.3.2 其实并不是函数的函数

6.4 参数魔法

6.4.1 值从那里来

6.4.2 我能修改参数吗

6.4.3 关键字参数和默认值

# 关键字参数

def hello_1(greeting, name):
    print('{},{}!'.format(greeting,name))

hello_1(greeting='Hello', name = 'world')


def hello_3(greeting='Hello', name='world'):
    print('{},{}!'.format(greeting,name))

hello_3()
hello_3(name = 'peter')

6.4.4 收集参数

# 收集参数
def print_params_4(x,y,z=3, *pospar, **keypar):
    print('x,y,z ', x, y, z)
    print('pospar', pospar)
    print('keypar', keypar)

print_params_4(1,2,3,5, 6, 7, foo = 1, bar = 2)
x,y,z  1 2 3
pospar (5, 6, 7)
keypar {'foo': 1, 'bar': 2}
>>> 

6.4.5 分配参数
与收集参数相反的操作

>>> def add(x, y):
    return x + y

>>> params = (1,2)
>>> add(*params)
3
>>> 

6.4.6 练习使用参数

6.5 作用域

6.6. 递归

6.6.1 两个经典案例:阶乘和幂

6.6.2 另一个经典案例:二分查找

6.7 小结

猜你喜欢

转载自blog.csdn.net/u010819416/article/details/82319418