函数的嵌套调用
所谓函数嵌套调用指的是一个函数里面又调用了另外一个函数
def testB():
print('---- testB start----')
print('这里是testB函数执行的代码...(省略)...')
print('---- testB end----')
def testA():
print('---- testA start----')
testB()
print('---- testA end----')
testA()
如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置
函数的递归
递归调用是一种特殊的调用形式,是函数自己调用自己。一个函数体内调用它自身,被称为函数递归。函数递归包含了一个隐式的循环,
它会重复执行某段代码,但这种重复执行无需循环控制
例如:从前有座山,山里有座庙,庙里有一个老和尚和小和尚,老和尚在给小和讲故事…
# 使用递归算法,求出任意数的和
def toSum(num):
if num == 1:
return 1
else:
return num+toSum(num-1)
sum = toSum(10)
print(sum)
"""
有六个人,第六个人说他比第五个人大3岁,第五个人说他比第四个人大3岁,第四个人说他比第三个人大3岁,
第三个人说他比第二个人大3岁,第二个人说他比第一个人大3岁,第一个人说自己13岁,求第六个人多大
"""
def sumAge(n):
if n == 1:
return 13
else:
return sumAge(n-1)+3
sum2 = sumAge(6)
print(sum2)
递归进阶操作:斐波那契数列
斐波那契数列(Fibonacci)最早由印度数学家戈帕拉(Gopala)提出,而第一个真正研究斐波那契数列的是意大利数学家 Leonardo Fibonacci,斐波那契数列的定义很简单,数列的前两位数字是1,之后的数由前两个数相加而得出,例如斐波那契数列的前10个数是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55
def getFibonacci(index):
if index == 1 or index == 2:
return 1
return getFibonacci(index - 1) + getFibonacci(index - 2)
for i in range(1, 11):
print(getFibonacci(i), end=", ")