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

    结束。

  • 相关阅读:
    git撤销远程commit
    git撤销add
    tf.train.AdamOptimizer 优化器
    tf.train.MomentumOptimizer 优化器
    tf.train.GradientDescentOptimizer 优化器
    tf.nn.top_k
    tf.nn.sigmoid_cross_entropy_with_logits 分类
    tf.nn.softmax 分类
    tf.nn.softmax_cross_entropy_with_logits 分类
    Python可迭代序列排序总结
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13079606.html
Copyright © 2011-2022 走看看