返回课程目录

第 11 章 程序设计基础

学习目标

  • 养成清晰的程序设计风格。
  • 掌握结构化程序设计的基本思想。
  • 区分对象、属性、方法和类。
  • 理解继承和多态在选择题中的含义。

1. 程序设计风格

  • 变量和函数使用有意义的名字。
  • 保持一致的缩进和空行。
  • 一个函数只完成一项明确任务。
  • 注释说明设计原因,不重复抄写语句。
  • 先处理正常输入,再检查边界和异常输入。

良好的风格不能代替正确算法,但能降低阅读和修改错误的概率。

2. 结构化程序设计

结构化程序设计以顺序、选择和循环为基本结构,并采用自顶向下、逐步求精和模块化方法。

def read_score():
    return eval(input("请输入成绩:"))

def grade(score):
    if score >= 60:
        return "及格"
    return "不及格"

def main():
    print(grade(read_score()))

main()

每个模块规模应便于理解和测试。模块之间通过参数和返回值传递数据,减少随意使用全局变量。

3. 面向对象

  • 类是同类对象的抽象描述。
  • 对象是类的具体实例。
  • 属性描述对象的数据,例如学生的姓名和成绩。
  • 方法描述对象的行为,例如修改成绩或显示信息。
class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score

    def passed(self):
        return self.score >= 60

student = Student("李明", 92)
print(student.passed())

4. 继承与多态

继承让新类获得已有类的属性和方法,并可以增加或改写功能。多态指不同对象收到相同消息时,可以表现出各自的行为。

例如,Circle 和 Rectangle 都有 area() 方法,但计算公式不同。程序调用 area() 时,实际执行哪个方法由对象自身决定。

面向对象的三个常见特征是封装、继承和多态。封装把数据与操作组织在一起,并限制外部直接修改内部细节。

本章练习

  • 用三个函数改写一个成绩统计程序。
  • 说明类、对象、属性和方法的关系。
  • 判断“继承一定不能改写已有方法”是否正确。
  • 举一个两个类具有同名方法但行为不同的例子。

本章小结

  • 结构化程序由顺序、选择、循环和模块组成。
  • 自顶向下、逐步求精是拆分复杂问题的基本方法。
  • 类是模板,对象是实例,属性保存数据,方法执行行为。
  • 继承复用已有类,多态允许同名方法在不同对象上有不同实现。