Python--12. 函数——函数定义与使用

5.1 函数定义与使用

5.1.1 基本语法

  • 如果函数没有return语句、有return语句但是没有执行到或者执行了不返回任何值的return语句,解释器都会认为该函数以return None结束,即返回空值。

5.1.2 函数嵌套定义、可调用对象与修饰器(详见P94)

5.1.3 函数递归调用

  • 阶乘
def Func(n):
    if n == 0:
        return 1
    else:
        return n*Func(n-1)
  • 求最大公约数
def func(m,n):
    if m % n == 0:
        return n
    else:
        return func(n,m%n)
  • 斐波那契数列
def fib(n):
    if n == 1 or n == 2:
        return 1
    else:
        return fib(n-1) + fib (n-2)
  • 汉诺塔问题(简易版)
def hanoi(a,b,c,n):
    if n == 1:
        print(a+'-->'+c)
    else:
        hano(a,c,b,n-1)
        print(a+'-->'+c)
        hano(b,a,c,n-1)
        
#hano('A','B','C',3)
  • 汉诺塔问题(升级版)
def hanoi(a,b,c,n):
    '''汉诺塔问题:把n个盘子从a移到c,返回总移动次数'''
    if n == 1:
        print('move plate 1 from '+ a + ' to ' + c)
        return  1
    else:
        m = hanoi( a,c, b, n-1)
        print('move plate '+str(n) +' from '+ a + ' to ' + c)
        hanoi( b,a, c, n-1)
        return 2*m+1
        
#x = hanoi('A', 'B', 'C', 4)
#print('total move  {0} times'.format(x))

猜你喜欢

转载自blog.csdn.net/ddjhpxs/article/details/105349169