4.5 练习

1. 什么是模块化设计?

2. 模块有哪些特点?

3. 什么是分离关注点原则?

4. 子程序的创建和调用涉及哪些内容?

5. 程序中为什么引入函数?

6. 什么是形式参数和实际参数?参数传递的过程是怎样的?

7. 什么是变量的作用域?什么是全局变量与局部变量?

8. 函数的参数与局部变量的异同是什么?

9. 函数调用时的控制流是如何转移的?

10. 什么是自顶向下设计?主要分为哪几个步骤?

11. 为具有下列主函数的程序画出结构图的顶层。

def main():
    printIntro()
    length, width = getDimensions() 
    amtNeeded = computeAmount(length,width)
    printReport(length, width, amtNeeded)

12. 请写出五个 Python 标准库中的模块名称及其主要功能。

13. 考虑函数:

def cube(x):
    answer = x * x * x 
    return answer

(1)这个函数的功能是什么?

(2)设 y 是一个变量,如何用 cube 函数去计算 y3?

(3)考虑下面这个程序片段:

answer = 4 
result = cube(3)
print answer, result

由于 cube 将 answer 赋值成了 27,所以输出应该是 27 27,对不对?为什么?

14. 设计程序:在屏幕上打印歌曲《歌唱祖国》的歌词①。

15. 设计程序:给定两个平面上的点 p1 和 p2(用元组表示),函数 slope(p1, p2)返回 通过 p1 和 p2 的直线的斜率,函数 intercept(p1, p2)返回该直线在 y 轴上的截距。

16 改写本章中的 calendar 程序,使输出更美观(例如让每三个月的日历输出在同一排上)。

17. 采用自顶向下设计方法编写程序:在屏幕上打印三角函数 y = sin(x)的图像。

18. 重做第 3 章的程序设计练习题,尽量使用函数来封装计算。

① 歌词参见 http://baike.baidu.com/view/252108.htm