python函数总结
python学习 . 2019/11/29发布 . shanyonggang_web . 我要评论 . 227阅读

函数是我们编程中经常会使用到的,接下来对python函数进行总结

函数定义

python函数定义比较简单,主要是使用def关键字,定义函数时,需要确定函数名和参数个数,示例代码如下:

def funcname(parameter_list):
    pass

函数内部出现return时则函数执行完毕,并将结果返回,若无return,则返回结果为None,同时函数可以返回多个值,其返回值为tuple,示例代码如下:

def funcname(parameter_list):
    x = 1
    y = 2
    return x,y

函数参数

  • 位置参数,如示例中的x,y,示例代码:
def power(x, y):
    s = 1
    while y > 0:
        y = y - 1
        s = s * x
    return s
  • 默认参数,使用默示参数时,默认参数必须在必选参数之后,当有多个参数时,将变化小的参数放置在后面设置为默认参数,示例代码:
# 其中年纪和城市大多数都一样,除了外地来的学生
def enroll(name, gender, age=6, city='Beijing'):
    print('name:', name)
    print('gender:', gender)
    print('age:', age)
    print('city:', city)
  • 可变参数,在参数名之前加*即可,可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,示例代码如下:
def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

        函数调用时候可以使用如下:

if __name__ == "__main__":
    numbers = [1,2,3,5,6]
    calc(*numbers)
  • 关键字参数,允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,示例代码如下:
def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)
if __name__ == "__main__":
    person('Michael', 30)
    person('Bob', 35, city='Beijing')
    person('Adam', 45, gender='M', job='Engineer')
  • 命名关键字参数,关键字参数是参数名不受限制的,如果我们想限定参数名,则需要使用命名关键字参数,引用函数时,必须传入参数名,否则会报错,示例代码如下:
# 命名关键字参数只需要在必选参数和关键字参数名之间加*即可
def person(name, age, *, city, job):
    print(name, age, city, job)
# 如果参数中有一个可变参数,则不需要添加*
def person(name, age, *args, city, job):
    print(name, age, args, city, job)
  • 参数组合,可以将上述几个参数进行组合使用,但是需保证其顺序,定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

        使用可变参数*args和关键字参数**kw是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

递归函数

        在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。举个例子,我们来计算阶乘n!,用函数fact(n)表示,具体代码如下:

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

 


  • 有疑问请在下方评论区留言,我会尽快回复。
  • Email私信我: 511248513@qq.com 或添加博主 微信
本文标题:python函数总结
本文作者:shanyonggang_web
发布时间:2019年11月29日 09:45
许可协议: 署名-非商业性使用 4.0 国际许可协议
知识共享许可协议     转载请保留原文链接及作者
正在加载今日诗词....
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的


登录 后回复

当前暂无评论,点击登录来做第一个吃螃蟹的人吧!