一、结构化程序设计概述
结构化程序设计(Structured Programming)是由计算机科学家 Edsger W. Dijkstra 于 20 世纪 60 年代提出的编程方法论。其核心思想是通过 顺序结构、选择结构 和 循环结构 三种基本控制结构,构建出逻辑清晰、易于理解和维护的程序。结构化程序设计强调程序的模块化、清晰性和可维护性,避免使用“goto”语句,以减少程序中的控制复杂度。
Python 作为一种高级语言,天然支持结构化程序设计的范式。接下来,将分别介绍结构化程序的三种基本结构,并通过 Python 代码示例进行演示。
二、三种基本结构及 Python 示例
1. 顺序结构(Sequence)
顺序结构 是程序中最基本的执行方式,按照代码的书写顺序,从上到下依次执行每一条指令。
示例:计算两个数的和
# 定义两个变量
a = 5
b = 3
# 计算它们的和
sum = a + b
# 输出结果
print("Sum:", sum)
解释:
依次执行赋值、加法运算和输出操作。
代码按顺序依次执行,不涉及跳转和分支。
2. 选择结构(Selection)
选择结构 是根据条件的判断来决定程序的执行路径。常见的选择结构包括 if...else 和 if...elif...else。
示例:判断一个数是奇数还是偶数
# 输入一个整数
num = int(input("Enter a number: "))
# 判断奇偶性
if num % 2 == 0:print(f"{num} 是偶数")
else:print(f"{num} 是奇数")
解释:
使用 if...else 结构,根据条件 num % 2 == 0 判断,选择不同的执行路径。
如果条件成立,执行 if 块;否则执行 else 块。
3. 循环结构(Loop)
循环结构 用于在满足特定条件时重复执行某段代码,常见的循环包括 for 循环和 while 循环。
示例:用 for 循环计算前 10 个自然数的和
total = 0
for i in range(1, 11):total += i
print("Sum of first 10 natural numbers:", total)
示例:用 while 循环打印 1 到 5 的数字
i = 1
while i <= 5:print(i)i += 1
解释:
for 循环适用于已知循环次数的情况。
while 循环适用于在满足某个条件时重复执行代码。
三、递归程序示例(整合三种基本结构)
递归是一种特殊的程序控制结构,它允许一个函数在其定义中调用自身。递归在本质上可以看作是通过 选择结构 和 顺序结构 来判断终止条件,通过 循环结构 来重复调用自身。
示例:用递归求解斐波那契数列
def fibonacci(n):if n <= 0:return 0elif n == 1:return 1else:return fibonacci(n - 1) + fibonacci(n - 2)
# 输出前 10 个斐波那契数
for i in range(10):print(fibonacci(i), end=" ")
解释:
顺序结构: 函数调用和返回值操作是顺序结构。
选择结构: 使用 if...elif...else 判断终止条件。
循环结构: 使用递归和 for 循环输出前 10 个斐波那契数。
四、总结
结构化程序设计通过顺序、选择和循环三种基本结构,能够构建出大部分复杂程序。
- 顺序结构 保证程序的逻辑性和执行顺序。
- 选择结构 增强程序的灵活性和智能性。
- 循环结构 实现重复性任务的自动化。
递归程序是结构化程序设计的重要延伸,结合了三种基本结构的特点,能够简洁地解决复杂的递推问题。结构化程序设计不仅提高了代码的可读性和可维护性,也为程序的模块化和扩展性提供了坚实的基础。