课程 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、函数式各自适合哪些场景?如何在项目中灵活结合?你遇到过哪些编程误区,如何避免?