递归的基本使用| 学习笔记

简介: 快速学习递归的基本使用

开发者学堂课程Python入门 2020年版递归的基本使用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10338


递归的基本使用

内容介绍

一、递归函数的概念

二、递归函数的应用


一、递归函数的概念

def test():

print( 'test')

demo()

def demo() :

print( ' demo ' )

在一个函数里可以调用另一个函数,在一个函数里能否自己调用自己

def test():

print( 'test')

test()

1.递归简单来说,就是函数内部自己调用自己

def tell_story() :

print('从前有座山')

print('山上有个庙')

print( '庙里有个老和尚')

print( '还有一个小和尚')

print( '老和尚在个小和尚讲故事')

print('故事的内容是')

tell_story()

tell_story()  调用故事,就会一遍一遍的讲

运行结果:不断讲故事讲到系统崩,这是递归的深度。

2.递归最重要的是找到出口(停止的条件)

停止的条件特别多

count =0

def tell_story() :

count +=1

print('从前有座山')

print('山上有个庙')

print( '庙里有个老和尚')

print( '还有一个小和尚')

print( '老和尚在个小和尚讲故事')

print('故事的内容是')

tell_story()

报错了,如何解决,加global count

count =0

def tell_story() :

global count

count +=1

print('前有座山')

print('山上有个庙')

print( '庙里有个老和尚')

print( '还有一个小和尚')

print( '老和尚在个小和尚讲故事')

print('故事的内容是')

if count <5:

tell_story

tell_story()

因为变量是一个全局变量,在函数内部,如果想用外部的全局变量,就要用global,运行结果:故事讲了5次。

 

二、递归函数的应用

#1~n的和

Def get_sum(n):

Pass

注意:break 只能用于循环语句,不能用于递归

def get_sum(n):

return get_sum(n-1) + n

1 +2 + 3+4+5 + 6

= get_sum(5)+6

= get_sum(4)+5+6

n项的和等于n加上n-1的和

Get_sum(6)=get_sum(5)+6

=get_sum(4)+5+6

= get_sum(3)+4+5+6

=get_sum(2)+3+4+5+6

getsum(1)+2+ 34+ 5+ 6

get_sum(0)+1+2+ 3+4+5+6

get_sum(-1)

一直加下去就没有尽头了,不能让他一直延续下去,

If n==0

Return

这时将0传进来,你告诉我n=0,这时就不用递归了,直接告诉你这个结果=0

#1 ~ n的和

def get_sum(n):

if n == 0:

return o

return n + get_sum(n - 1)

print(get_sum(6))

运行结果:21

先想代码如何写,然后想如何让他停下来。

如果写成

If == 6

Return 21

运行结果:21

print(get_sum(7)  #7+21

注意:如果小于6就有问题了,小于6的和就求不到了,因为后面都是get_sumn-1,小于6就死循环了,所以递归就需要思考好如何出去,如上题所示,大于等于6就都可以计算.

Get_sum(8)=8+get_sum(7)

=8+7+21

一般是一直计算,直到1停止计算。

相关文章
|
10月前
如何使用递归及注意事项
如何使用递归及注意事项
52 0
|
算法
【学习笔记之我要C】函数递归
【学习笔记之我要C】函数递归
42 0
|
前端开发
前端学习案例4-斐波那契数列前端实现递归方式4
前端学习案例4-斐波那契数列前端实现递归方式4
42 0
前端学习案例4-斐波那契数列前端实现递归方式4
|
前端开发
前端学习案例1-斐波那契数列前端实现递归方式
前端学习案例1-斐波那契数列前端实现递归方式
43 0
前端学习案例1-斐波那契数列前端实现递归方式
|
前端开发
前端学习案例2-斐波那契数列前端实现递归方式2
前端学习案例2-斐波那契数列前端实现递归方式2
51 0
前端学习案例2-斐波那契数列前端实现递归方式2
函数进阶
函数根据 **有没有参数** 以及 **有没有返回值**,可以 **相互组合**,一共有 **4 种** 组合形式 1. 无参数,无返回值 2. 无参数,有返回值 3. 有参数,无返回值 4. 有参数,有返回值
|
算法 程序员 编译器
【C】掌握函数基本知识+理解函数递归
【C】掌握函数基本知识+理解函数递归
76 0
【C】掌握函数基本知识+理解函数递归
|
Java Scala 开发者
函数递归的课堂练习|学习笔记
快速学习函数递归的课堂练习。
59 0

热门文章

最新文章