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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值