导入
迭代函数概述
在本节课中,我们将学习迭代。
什么是迭代?
迭代指的是重复执行某些步骤以达到预期结果。在计算机编程中,迭代过程通常涉及一种机制,包括循环。
当我们学习递归时,了解迭代的基本概念也同样重要。
迭代函数的格式
每个迭代函数都包含一个循环和一个条件语句,用于判断是否继续迭代或停止进一步执行。
...
迭代函数的代码流程图。
上图中,虚线框所包围的部分代表了代码流程中的迭代部分。
迭代函数的语法
让我们看看如何使用 Python 编写一个迭代函数:
1def IterativeFunction(): 2 <根据需要定义局部变量> 3 while <某个条件 == True>: 4 # 执行某项任务
计算一个数的阶乘
下面我们来看一个计算指定数字阶乘的迭代代码。请回顾我们在前一课中介绍的该函数的递归实现。
迭代版本
1def factorial(targetNumber): 2 # 处理 0 和 1 的基本情况 3 if targetNumber <= 1: 4 return targetNumber 5 6 # 将索引初始化为 targetNumber - 1 7 index = targetNumber - 1 8 9 while index >= 1: 10 targetNumber = targetNumber * index # 将 targetNumber 与比它小 1 的值(即 index)相乘 11 index -= 1 # 每次迭代将 index 减 1 12 13 return targetNumber 14 15# 测试代码 16targetNumber = 5 17result = factorial(targetNumber) 18print("数字 " + str(targetNumber) + " 的阶乘是: " + str(result))
递归版本
1def factorial(targetNumber): 2 # 处理 0 和 1 的基本情况 3 if targetNumber <= 1: 4 return targetNumber 5 6 # 递归情况 7 else: 8 return targetNumber * factorial(targetNumber - 1) 9 10# 测试代码 11targetNumber = 5 12result = factorial(targetNumber) 13print("数字 " + str(targetNumber) + " 的阶乘是: " + str(result))
对于迭代版本,我们启动了一个简单的 while 循环,在每次迭代中将 targetNumber 与 index 相乘。index 每次减少 1。这一步至关重要,否则程序将陷入无限循环。index 的初始值为 targetNumber - 1。
下面我们通过手动模拟来跟踪代码中变量的变化情况。
在下一课中,我们将重点对比迭代与递归之间的主要区别。