函数——常见函数

1.globals,locals函数

  • 可以通过globals和locals显示出全局变量和局部变量

2.eval()函数

  • 把一个字符串当做一个表达式来执行,返回表达式执行后的结果
    语法:

    eval(string_code,globals=None,locals=None)
    

exec()函数

  • 与eval功能类似,但是不返回结果
    语法:

    exec(string_code,globals=None,locals=None
    

3.递归函数

  • 函数直接或者间接调用自身
  • 优点:简洁,容易理解
  • 缺点:对递归深度有限制,超过限制报错
  • 在写递归程序的时候,一定注意结束条件

菲波那切数列

  • 一列数字,第一个是1,第二个是1,从第三个开始,每个数字的值等于前两个数字的和
  • 数学公式为:f(1) = 1,f(2) = 1,f(n) = f(n-1) + f(n-2)
  • 例如:1,1,2,3,5,8,13,21…
def fib(n):
    if n == 1:
        return 1
    if n == 2:
        return 1
    return fib(n-1)+fib(n-2)

汉诺塔问题

  • 规则: 1.每次移动一个盘子 2.任何时候大盘子都必须在小盘子下面 3.有3个塔A,B,C.将开始都在A塔上的盘子通过移动,全部移到C塔上,即算成功
    方法:
    1.n = 1:直接把A上的一个盘子移到C上,A- ->C
    2.n = 2:
    a.把小盘子从A放到B上,A- ->B
    b.把大盘子从A放到C上,A- ->C
    c.把小盘子从B放到C上,B- ->C
    3.n = 3:
    a.把A上的两个盘子,通过C放到B上,调用递归实现
    b.把A剩下的最大的盘子移到C上,A- ->C
    c.把B上两个盘子,借助于A移到C上,调用递归实现
    4.n = n:
    a.把A上的n-1个盘子,通过C放到B上,调用递归实现
    b.把A剩下的最大的盘子移到C上,A- ->C
    c.把B上n-1盘子,借助于A移到C上,调用递归实现
def hannuo(n,a,b,c):
    '''
    n:表示有n个盘子
    a:代表第一个塔,开始的塔
    b:代表第二个塔,过渡塔
    c:代表第三个塔,目标塔
    d.在代码中n = 2,这个分支可以不要,但这样便于理解
    
    '''
    if n == 1:
        print(a,"- ->",c)
        return None
    if n == 2:
        print(a,"- ->",b)
        print(a,"- ->",c)
        print(b,"- ->",c)
        return None
    hannuo(n-1,a,c,b)
    print(a,"- ->",c)
    hannuo(n-1,b,a,c)
    return None

4.return 的简要使用说明

(1)返回函数的返回值
(2)终止程序的运行,提前退出,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值