课程 19:编程原理
1. 编程原理基础
1.1 什么是编程原理?
编程原理是指导我们设计、实现和维护程序的基本思想和方法,包括结构化、模块化、抽象、封装、复用等。
1.2 常见编程范式
主要范式:
• 结构化编程:顺序、选择、循环,强调流程清晰
• 面向对象编程:类、对象、继承、多态,强调抽象和复用
• 函数式编程:高阶函数、不可变性、递归,强调表达式和无副作用
2. 结构化编程
2.1 顺序、选择、循环
# 顺序结构
a = 5
b = 3
c = a + b
print(c)
# 选择结构
if c > 5:
print('大于5')
else:
print('不大于5')
# 循环结构
for i in range(5):
print(i)
优点: 代码易读、易维护,适合大多数基础问题。
3. 面向对象编程(OOP)
3.1 类与对象
# 定义类:Dog 是类名
class Dog:
# 构造方法:创建对象时自动调用
def __init__(self, name):
self.name = name # 实例属性:每个对象独有的数据
# 实例方法:对象的行为
def bark(self):
print(self.name + ' 汪汪!')
# 创建对象:d 是 Dog 类的实例
d = Dog('旺财') # 调用构造方法,传入参数 '旺财'
d.bark() # 调用对象的方法
3.2 继承与多态
# 父类(基类):定义通用行为
class Animal:
def speak(self):
print('动物叫')
# 子类:继承父类,重写方法实现多态
class Dog(Animal):
def __init__(self, name):
self.name = name # 实例属性
def speak(self): # 重写父类方法
print(self.name + ' 汪汪!')
class Cat(Animal):
def speak(self): # 重写父类方法
print('喵喵!')
# 多态演示:不同对象调用相同方法,产生不同结果
animals = [Dog('旺财'), Cat()] # 创建不同类型的动物对象
for a in animals:
a.speak() # 多态:同一接口,不同实现
优点: 代码复用、易扩展、适合建模复杂系统。
4. 函数式编程
4.1 高阶函数与lambda
# 高阶函数
nums = [1, 2, 3, 4]
squares = list(map(lambda x: x**2, nums))
print(squares)
# 过滤
evens = list(filter(lambda x: x % 2 == 0, nums))
print(evens)
4.2 不可变性与递归
# 递归实现斐波那契数列
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
print([fib(i) for i in range(10)])
优点: 代码简洁、易于并行、适合数据处理和算法问题。
学习建议:编程原理是写好程序的基础,建议多思考多实践,遇到问题要学会查文档和调试。多尝试不同范式,体会各自优势。
思考题:结构化、OOP、函数式各自适合哪些场景?如何在项目中灵活结合?你遇到过哪些编程误区,如何避免?