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 章的程序设计练习题,尽量使用函数来封装计算。