递归函数第 2 部分
本课属于 Coddy Python 学习旅程的“逻辑与流程”单元。第 61 课,共 78 课。
递归函数通常有两部分:
- 基本情况:定义递归何时停止。
- 递归步骤:用更小的输入调用函数自身。
示例:使用递归计算阶乘:
def factorial(n):
if n == 1: # 基本情况
return 1
return n * factorial(n - 1) # 递归调用
print(factorial(5)) # 输出:120在这里,函数会不断用 n - 1 调用自身,直到达到 1,此时递归停止。
示例:反转字符串:
def recursive_reverse(s):
if len(s) <= 1: # 基本情况:空字符串或单字符字符串
return s
else:
return recursive_reverse(s[1:]) + s[0] # 递归步骤
text = "hello"
result = recursive_reverse(text)
print(result)
# 输出:olleh在这个示例中,recursive_reverse 函数会将剩余的字符串(s[1:])作为参数调用自身,直到字符串为空或只剩一个字符。每次调用都会将第一个字符添加到递归调用的结果中,从而反转字符串。
挑战
简单编写一个名为 fibonacci 的递归函数,它接受一个正整数 n 作为参数,并返回第 n 个斐波那契数。斐波那契数列定义如下:
fibonacci(1) = 0fibonacci(2) = 1- 当
n > 2时,fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)。
示例输入:
n = 6示例输出:
5亲手试试
def fibonacci(n):
# 在这里编写代码这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Python 在线编译器