天天看點

Python函數中多類型傳值和備援參數及函數的遞歸調用

1.多類型傳值和備援參數

多類型傳值:

   def fun(x,y):

        return x +y

    print fun(3,5)

    8

    print fun(*t)

    3

    def fun(x,y,z):

        return x + y + z

    t1 = (1,2,3)

    fun(*t1)

    6

    fun(*(2,4,5))

    11

    fun(1,*t)

    4

    print t

    (1, 2)

    fun(x=1,y=3,z=5)

    9

    >>> dic = {'x':1,'y':3,'z':6}

    >>> fun(**dic)

    10

備援參數:

    >>> def fun(x,*args,**kwargs):

    ...     print x

    ...     print args

    ...     print kwargs

    ...    

    >>> fun(1)

    1

    ()

    {}

    >>> fun(1,2)

    (2,)

    >>> fun(1,2,3)

    (2, 3)

    >>> t

    >>> fun(1,2,3,'a',[1,2],*t,a=3,**{'t':11,'p':22})

    (2, 3, 'a', [1, 2], 1, 2)

    {'a': 3, 'p': 22, 't': 11}

2.函數的遞歸調用

    遞歸的注意事項:

    必須有最後的預設結果:

    if n == 0

    遞歸參數必須向預設結果收斂的:

    factorial(n-1)

階乘腳本:

    #!/usr/bin/env python          

    # -*- coding:utf-8 -*-

    # @Time:   2018/1/4 11:57  

    # @Author: Feng Xiaoqing      

    # @File:   jiecheng.py        

    # ======================

    def factorial(n):

        sum = 0

        for i in range(1,n+1):

            sum += i

        return sum

    print factorial(100)

另外一種方法:

        if n == 0:

            return 1

        else:

            return n * factorial(n-1)

    print factorial(5)

求1-100相加的和:

   def factorial(n):

            return 0

        else:

            return n + factorial(n-1)

本文轉自 楓葉雲  51CTO部落格,原文連結:http://blog.51cto.com/fengyunshan911/2057573