python编程案例_python编程案例—模块化编程

14d2136a0e4ea7dddb2a5aade7ae5ded.png

1、编程要求

阿萌要开发一个面积计算器程序,用于帮助学生理解平面几何图形的边长与面积的关系。程序可以计算长方形、正方形、平行四边形、三角形的面积。

df7793c7ded1838119f5fd673d15bcb2.png

阿萌这次编写的程序有点复杂,程序要计算四个几何图形的面积,而且计算每个几何图形面积的输入也不尽相同。阿萌该如何编写这个程序呢?

e5865d18c80c04ddc7a5c0a25a6f9c61.png

2、问题分解

平时我们在解决一些复杂问题时,会把一个复杂的问题分解成多个子问题,先逐个解决这些子问题,当这些子问题解决后,复杂的问题自然就得到了解决。

例如:假如你要在家做一顿丰盛的晚餐,你可能会安排人去采购食材、安排另外的人备菜,你负责掌勺。我们如果把做一顿丰盛的晚餐作为一个复杂问题,那么采购食材、备菜、掌勺就是这个复杂问题的子问题,当采购食材、备菜、掌勺这些问题得到解决后,做一顿丰盛的晚餐这个大问题自然就得到了解决。

84ccf0850a5af99dd4db202eb4231cfb.png

把复杂的问题分解成多个子问题就是分而治之的思想,分而治之的思想同样也可以使用到编程过程中。对于复杂的程序,可以对程序的功能进行分解,将程序的功能分解成多个子功能,从而达到将复杂问题进行简化的目的。

3、划分模块

面积计算器可以分解为计算长方形的面积、计算正方形的面积、计算平行四边形的面积、计算三角形的面积四个子功能,每个子功能是一个独立的模块文件。

36484136a8db017c11db929908aeeedc.png

模块文件就是我们创建的代码文件。前面我们说过,一个Python程序由一个模块或多个模块组成,每个模块就是一个代码文件。在这些模块中,只有一个是主模块,该主模块将被python解释器直接执行模块中的代码,其它模块为功能模块,功能模块只有被主模块的代码调用后才会执行。

按照功能划分,面积计算器程序共有五个模块文件,主模块文件main.py,计算长方形面积的模块文件rectangle.py,计算正方形面积的模块文件square.py,计算平行四边形面积的模块文件paraller.py,计算三角形面积的模块文件triangle.py,还有主模块文件main.py。

b8c60b354d79e6ec5192ef2ff964c291.png

模块划分完成后,就可以开始编写每个模块代码了。

4、计算长方形的面积

长方形的面积公式为:S = a * b

S表示长方形的面积,a表示长方形的长,b表示长方形的宽。

程序的输入是长方形的长和宽,程序的输出是长方形的面积。

9d7bd8eb2f826bca7e638e6157717324.png

计算长方形的面积用函数来实现,方便主模块的调用,阿萌绘制了计算长方形面积的流程图。

99bccae8f7e29241fde0dce0b30f4470.png

在流程图中,当学生输入的a和b不是整数或小数时,需要提示用户重新输入长方形的长和宽,用代码实现时,可以使用while循环来实现。

rectangle.py代码如下:

'''程序文件:rectangle.py功能描述:计算长方形的面积调用模块:main.py代码编写时间:2020/04/11作者:编程训练营'''# 定义函数areadef area():    while(True):        # 输出提示信息        a = input("请输入长方形的长(整数):")        # 判断a是否是整数或小数        if a.isdigit():            # 输出提示信息              b = input("请输入长方形的宽(整数):")            if b.isdigit():                S = int(a) * int(b)                return S            else:                print("输入错误,请重新输入")        # 提示学生输入错误        else:            print("输入错误,请重新输入")

代码解读

代码定义了area函数,用于计算长方形的面积。在area函数内部使用了while循环,当学生输入的内容不是整数时,函数会提示学生输入错误,直至学生输入正确的长方形的长和宽。函数计算长方形的面积,并返回面积。

5、计算正方形的面积

正方形的面积公式为:S = a * a

S表示正方形的面积,a表示正方形的边长。

程序的输入是正方形的边长,程序的输出是正方形的面积。

574472448914e670fec5c7e8662b5b81.png

计算正方形的面积也通过函数来实现,方便主模块的调用。阿萌绘制了计算正方形面积的流程图。

e75b078c9e69642279324fc308c6b273.png

square.py代码如下:

'''程序文件:square.py功能描述:计算正方形的面积调用模块:main.py代码编写时间:2020/04/11作者:编程训练营'''# 定义函数areadef area():    while(True):        # 输出提示信息        a = input("请输入正方形的边长(整数):")        # 判断a是否是整数或小数        if a.isdigit():            S = int(a) * int(a)            return S        # 提示学生输入错误        else:            print("输入错误,请重新输入")

 代码解读

计算正方形面积的代码和计算长方形面积的代码基本相同,在编写代码时,可以把rectangle.py的代码复制过来,在rectangle.py代码的基础上修改即可。

6、计算平行四边形的面积

平行四边形的面积公式为:S = a * h

S表示平行四边形的面积,a表示平行四边形的底,h表示平行四边形的高。

程序的输入是平行四边形的底和高,程序的输出是平行四边形的面积。

168180365b2597fdeed51cdfcf826b2e.png

计算平行四边形的面积也通过函数来实现,方便主模块的调用。阿萌绘制了计算平行四边形面积的流程图。

f752bfc0bd2b3b86675f9363e79e0641.png

paraller.py代码如下:

'''程序文件:paraller.py功能描述:计算平行四边形的面积调用模块:main.py代码编写时间:2020/04/11作者:编程训练营'''# 定义函数areadef area():     while(True):        # 输出提示信息        a = input("请输入平行四边形的底(整数):")        # 判断a是否是整数或小数        if a.isdigit():            # 输出提示信息              h = input("请输入平行四边形的高(整数):")            if h.isdigit():                S = int(a) * int(h)                return S            else:                print("输入错误,请重新输入")        # 提示学生输入错误        else:            print("输入错误,请重新输入")

代码解读

编写代码一定要注意语句的缩进对齐,同一层次的语句左侧要对齐。内层语句要比外层语句缩进一定数量的空格,建议都是四个空格。

7、计算三角形的面积

三角形的面积公式为:S = a * h / 2

S表示三角形的面积,a表示三角形的底,h表示三角形的高。

程序的输入是三角形的底和高,程序的输出是三角形的面积。

25730742a53e670b814e56fe9e09dd7b.png

计算三角形的面积也通过函数来实现,方便主模块的调用。阿萌绘制了计算三角形面积的流程图。

04902a94868465474a20e1daa717140e.png

triangle.py代码如下:

'''程序文件:triangle.py功能描述:计算三角形的面积调用模块:main.py代码编写时间:2020/04/11作者:编程训练营'''# 定义函数areadef area():    while(True):        # 输出提示信息        a = input("请输入三角形的底(整数):")        # 判断a是否是整数或小数        if a.isdigit():            # 输出提示信息              h = input("请输入三角形的高(整数):")            if h.isdigit():                S = int(a) * int(h) / 2                return S            else:                print("输入错误,请重新输入")        # 提示学生输入错误        else:            print("输入错误,请重新输入")

代码解读

当while循环条件设置为True时,一定要在循环体有退出循环机制。当学生输入正确的底和高后,函数计算三角形的面积,并使用return语句返回面积,函数执行结束,循环自然就退出了。

8、模块的导入

阿萌有个疑问,主模块如何使用这些功能模块呢?

0241679f8e2662d60379ba266176722b.png

Python语言提供了import语句用于导入外部模块,它的语法如下:

884dfcb082d8c08fd1d1176a4855443f.png

上图中的modulename是模块名称,name是该模块的别名,在调用模块函数时,可以直接使用name作为模块的名称。

f56805c10815b28bda3eba7b138e60bc.png

案例01的代码演示了如何导入及调用模块内部函数的方法。

在案例01的代码中,使用import语句导入了“rectangle.py”模块,用于计算长方形的面积,导入模块时只写模块名称就可以了,文件扩展名不需要写。导入的模块别名是rect,后面的语句可以直接使用rect来调用模块内部的函数。

调用导入模块内部函数的语法如下:

69471269f81bbbed2012da7d88a8a0cd.png

S = rect.area() 语句用于调用“rectangle.py”模块的area函数,来计算长方形的面积,area函数返回长方形的面积,并赋值给S变量。

9、主模块编程思路与程序流程图

模块划分完成后,阿萌开始考虑程序主模块的编写。

程序支持长方形、正方形、平行四边形和三角形的面积计算,程序启动后,会进入选择状态,学生可以选择其中的一个状态,该状态对应计算一个几何图形的面积,面积计算完成后,程序会再次进入选择状态。

选择状态为1、2、3、4,状态1计算长方形的面积,状态2计算正方形的面积,状态3计算平行四边形的面积,状态4计算三角形的面积。

109b9c579cd75387ed43962768b112a4.png

程序的具体流程为:

(1)程序输出提示信息,要求学生选择状态,或者输入quit退出程序;

(2)学生选择状态,程序调用状态对应的模块来计算几何图形的面积;

(3)面积计算完成,程序会再次进入选择状态,等待学生的选择;

(4)如果学生输入quit,退出程序。

7bf0e65de719cd8f23ca7a85aac0a45f.png

11、程序代码及解读

阿萌编写的程序代码。

'''程序文件:main.py功能描述:面积计算器主程序代码编写时间:2020/04/14作者:编程训练营'''# 导入模块import rectangle as rectimport square as sqimport paraller as paimport triangle as tr  # 程序入口if __name__ == '__main__':            while(True):        # 输出提示信息        print("-------欢迎使用面积计算器------\n")        print("按下数字1键:计算长方形面积\n")        print("按下数字2键:计算正方形面积\n")        print("按下数字3键:计算平行四边形面积\n")        print("按下数字4键:计算三角形面积\n")        print("输入quit,退出程序\n")          # 获取学生的输入        num = input("请输入:")                # 输入数字1?        if num == "1":            print("长方形的面积为:" + str(rect.area()))                    # 输入数字2?        elif num == "2":            print("正方形的面积为:" + str(sq.area()))          # 输入数字3?        elif num == "3":            print("平行四边形的面积为:" + str(pa.area()))          # 输入数字4?        elif num == "4":            print("三角形的面积为:" + str(tr.area()))          # 输入quit?        elif num == "quit":            break

代码解读

使用import语句导入计算长方形、正方形、平行四边形和三角形面积的模块文件。

在while循环体内,首先输出提示信息,提示学生按下不同的数字键,选择计算对应的几何体面积,也可以输入quit退出程序。

然后使用input函数获取学生的输入,使用多重条件结构来判断学生的输入。如果输入的是1、2、3、4数字字符,分别调用对应的模块函数来计算几何体的面积。如果输入的是quit,调用break语句退出循环,程序结束。

b0cb0922b0e874de6c65dded5eb44956.png

45d21c12c6633932b8838b79b016e16a.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值