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

结束。

原文地址:https://www.cnblogs.com/liusingbon/p/13079606.html