美文网首页python
04_python基础_函数

04_python基础_函数

作者: lin0cb | 来源:发表于2020-03-05 22:49 被阅读0次

    目标掌握函数的几种常见操作,包括函数定义、函数调用、递归函数

    函数定义及调用

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    1 语法

    def 函数名(参数列表):
        函数体
        
    #函数代码块以def关键词开头,后接函数标识名称和圆括号()
    #任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数
    #return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None
    

    2 案例

    >>> def hello_world():
    ...     print("hello world")
    ...
    >>> hello_world()
    hello world
    #不带参数的函数
    
    >>> def area(width,height):
    ...     return width * height
    ...
    >>> print(area(3,4))
    12
    #带参数的函数
    

    递归函数

    在函数内部可以调用其他函数,如果调用的是自身则为递归函数

    1 实现思路

    递归函数实现可分为如下三个步骤:
    1、确定临界值1,一般是完成任务的前一步,需要特殊处理
    2、=1,需要执行的操作
    3、>1,(n)->(n-1)时的操作(n>2)
    

    2 案例1_阶乘

    #案例1:计算出阶乘n!的值
    #分析:临界值为1;=1,return 1;> 1,n*(n-1)!
    
    >>> def fact(n):
    ...     if n == 1:
    ...             return 1
    ...     return n * fact(n-1)
    ...
    >>> fact(5)
    120
    

    3 案例2_汉诺塔

    #案例2:有ABC三个柱子,将n个盘子从从A搬到C要怎么操作
    #分析:临界值是A上有1个盘子,C上有n-1个盘子;
    #若A上盘子只有一个,则A->C;
    #若A上盘子有n个,n-1个盘子A->B;第n个盘子A->C;n-1个盘子B->C
    
    >>> def move(n,a,b,c):
    ...     global count
    ...     if n==1:
    ...         print(a,'->',c)
    ...         count += 1
    ...     else:
    ...         move(n-1,a,c,b)
    ...         move(1,a,b,c)
    ...         move(n-1,b,a,c)
    ...     
    >>> count=0
    >>> move(3,'A','B','C')
    A -> C
    A -> B
    C -> B
    A -> C
    B -> A
    B -> C
    A -> C
    

    相关文章

      网友评论

        本文标题:04_python基础_函数

        本文链接:https://www.haomeiwen.com/subject/pjxrrhtx.html