第 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() 时,实际执行哪个方法由对象自身决定。
面向对象的三个常见特征是封装、继承和多态。封装把数据与操作组织在一起,并限制外部直接修改内部细节。
本章练习
- 用三个函数改写一个成绩统计程序。
- 说明类、对象、属性和方法的关系。
- 判断“继承一定不能改写已有方法”是否正确。
- 举一个两个类具有同名方法但行为不同的例子。
本章小结
- 结构化程序由顺序、选择、循环和模块组成。
- 自顶向下、逐步求精是拆分复杂问题的基本方法。
- 类是模板,对象是实例,属性保存数据,方法执行行为。
- 继承复用已有类,多态允许同名方法在不同对象上有不同实现。