zoukankan      html  css  js  c++  java
  • Python条件循环_递归运算

    一个函数可以去调用另一个函数,函数来调用自己也是允许的,这就是递归。

    看个例子:

    $ cat test.py

    #!/bin/python

    def countdown(n):

        if n <= 0:

            print('Blastoff!')

        else:

            print(n) 

            countdown(n-1)

    countdown(3)         #调用函数countdown

    如果n为0或者负数,程序会输出【Blastoff!】。其他情况下,程序会调用自身来运行,以自身参数n减去1为参数:

    上例中最后一行,调用函数countdown()

    开始时候函数参数n是3,大于0,输出n的值3,然后调用自身,用n-1也就是2作为参数,接着进入if判断...

    接下来的函数参数n是2,大于0,输出n的值2,然后调用自身,用n-1也就是1作为参数,接着进入if判断...

    再往下去函数参数n是1,大于0,输出n的值1,然后调用自身,用n-1也就是0作为参数,接着进入if判断...

    最后这次函数参数n是0,等于0了,输出【Blastoff!】,然后返回。

    总的输出如下所示:

    $ python a.py

    3

    2

    1

    Blastoff!

    调用自身的函数就是递归的,执行这种函数的过程就叫递归运算。

    再写一个例子:用print把一个字符串s显示n次:

    $ cat a.py

    #!/bin/python

    def print_n(s, n):

        if n <= 0:

             return

        print(s)

        print_n(s, n-1)

    s="Python is good"

    n=4

    print_n(s, n)

    如果n小于等于0了,返回语句return就会终止函数的运行。运行流程立即返回到函数调用者, 函数其余各行的代码也都不会执行。

    函数其余部分的代码很容易理解:打印(print)一下s的内容,然后调用自身,用n-1做参数来继续运行,这样就额外对s进行了n-1次的显示。所以输出的行数是1+(n-1),最终一共有n行输出。

    $ python a.py

    Python is good

    Python is good

    Python is good

    Python is good

    结束。

  • 相关阅读:
    【2019/7/15】暑假自学——周进度报告
    用户体验评价
    《程序员修炼之道》读后感03
    《程序员修炼之道》读后感02
    《程序员修炼之道》读后感01
    《梦断代码》读后感03——为什么我们不能像造桥一样造软件
    《梦断代码》读后感02——问题的开始
    《梦断代码》读后感01——Chandle的开始
    第二阶段冲刺9
    十五周总结
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13079606.html
Copyright © 2011-2022 走看看