Menu
CoddyTech

递归函数第 2 部分

本课属于 Coddy Python 学习旅程的“逻辑与流程”单元。第 61 课,共 78 课。

递归函数通常有两部分:

  1. 基本情况:定义递归何时停止。
  2. 递归步骤:用更小的输入调用函数自身。

示例:使用递归计算阶乘:

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:])作为参数调用自身,直到字符串为空或只剩一个字符。每次调用都会将第一个字符添加到递归调用的结果中,从而反转字符串。

challenge icon

挑战

简单

编写一个名为 fibonacci 的递归函数,它接受一个正整数 n 作为参数,并返回第 n 个斐波那契数。斐波那契数列定义如下:

  • fibonacci(1) = 0
  • fibonacci(2) = 1
  • 当 n > 2 时,fibonacci(n) = fibonacci(n-1) + fibonacci(n-2)。

示例输入:

n = 6

示例输出:

5

亲手试试

def fibonacci(n):
    # 在这里编写代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Python 在线编译器