Python递归函数实例讲解

yipeiwu_com7年前Python基础

Python递归函数实例

1、打开Python开发工具IDLE,新建‘递归.py'文件,并写代码如下:

def digui(n):

  if n == 0 :

    print ('')

    return

  

  print ('*'*n)

  digui(n-1)

if __name__ == '__main__':

  digui(5)

这里递归打印*号,先打印后递归

2、F5运行程序,打印内容如下;

*****

****

***

**

*

3、更改一下打印和递归的 顺序,先递归后打印,代码如下:

def digui(n):

  if n == 0 :

    print ('')

    return

  digui(n-1)

  print ('*'*n)

  

if __name__ == '__main__':

  digui(5)

4、F5运行程序,打印内容如下;

*

**

***

****

*****

这是因为打印在最后,要等待执行到n==0,函数才能return。

5、再更改递归函数,递归函数带返回值,代码如下:

def digui(n):

  if n == 0 :

    return 0

  return n+digui(n-1)

  

if __name__ == '__main__':

  print (digui(5))

此函数作用从5+4+3+2+1+0累加结果。直到n==0时候返回。

6、F5运行程序,打印累加结果15

上面就是关于Python递归函数的相关知识点,感谢大家的阅读和对【听图阁-专注于Python设计】的支持。

相关文章

简单介绍Python的Django框架加载模版的方式

一般说来,你会把模板以文件的方式存储在文件系统中,但是你也可以使用自定义的 template loaders 从其他来源加载模板。 Django有两种方法加载模板  &n...

Python拼接字符串的7种方法总结

前言 忘了在哪看到一位编程大牛调侃,他说程序员每天就做两件事,其中之一就是处理字符串。相信不少同学会有同感。 在Python中,我们经常会遇到字符串的拼接问题,几乎任何一种编程语言,都把...

Python中使用双下划线防止类属性被覆盖问题

Python中使用双下划线防止类属性被覆盖问题

在使用Python编写面向对象的代码时,我们会常常使用“继承”这种开发方式。例如下面这一段代码: class Info: def __init__(self): pass...

浅谈Python里面小数点精度的控制

要求较小的精度 round()内置方法 这个是使用最多的,刚看了round()的使用解释,也不是很容易懂。round()不是简单的四舍五入的处理方式。 For the built-in...

python requests证书问题解决

用requests包请求https的网站时,我们偶尔会遇到证书问题。也就是常见的SSLerror,遇到这种问题莫慌莫慌。 这里没有找到合适的网站去报SSL证书的错误,所以就假装请求了一个...