[oeasy]python0143_主控程序_main
主控程序
回忆上次内容
- 上次把 apple.py 拆分成了输入 主函数
- 引用模块中变量的时候 要带上包(module)名get_fruits.a get_fruits.b
- 最终拆分代码 成功!
- 可以将程序 再拆分成输入 输出 然后 再由主函数调用吗?🤔
建立主控
- 新建一个 main.py 文件
- 导入 input、output 两个包
- 然后运行vi -o main.py get_fruits.py output.py

- 增大窗口宽度ctrl+w , +
- 减小窗口宽度ctrl+w , -
运行

- 运行成功
程序结构

- 既然我在 main.py 里面已经导入了 input 这个包
- 我还有必要在 output 中导入这个包么?
- 实践出真知
- 试着删除output中的第一句

尝试
- 失败!

- 还是需要在 output 中导入 get_fruits 这个包的虽然 main 认识了 get_fruits 但是 output 不认识也不行 不认识 就无从得到输入的数值
- 我们跳出具体文件去观察文件架结构
文件结构
- 可以看到出现了两个被引用包的 pyc 文件

- 能对比一下吗?
对比

- 编译后的pyc文件 依稀能够看到字符串 变量名 函数名

- 模块隐隐约约是可以看懂的
顺序过程
- 其实代码可以分成三块输入 处理 输出

- 这是一个典型的
面向过程
的 程序面向过程
就是 Procedure Oriented 按部就班 把复杂的过程分解成 相对简单明确的模块 每个模块 做自己简单明确的事情 专业分工 提高效率 - 这是工业时代提高效率的思维模式
分工明确
- 铁路警察各管一段
- 不要想着怎么发明轮子轮子有现成的 拿来用就完事了

- 接下来把模块分成三块
功能作用模块名输入接收到什么信号get_fruits处理怎么处理信号process输出最终输出什么信号output
- 那建立 process.py
三步走
- main需要 3 个包都导入
- process只需要导入 get_fruits
- get_fruits虽然被导入了两次 但是输入数值的部分只被执行一次
- output只需要 process 模块求和的结果 而不需要导入 get_fruits 模块 需要明确 total 来自于 process 包

- 测试结果 数字(123)当做测试用例的话能成功 但是用字母(abc)当测试用例的话会如何呢?
不成功 🙅🏻♀️

- 问题出在process.py中int(a) + int(b)那一步
- 所以需要在那里try except
处理异常
- 修改代码

运行结果
- 字母的测试用例可以顺利地报错

- 但是现在还面临一个问题就是不明确 不知道是 a 出了问题 还是 b 出了问题 报错细节不明确
修改代码
- 在process模块中分别try...except...

- 这样运行是没有问题的
优化代码
- 不过应该还有更好的方式

- 转化工作其实应该在输入部分完成
- 输入变量的容错处理应该在输入的时候 就第一时间做 不要留到数据处理时 才做
总结
- 我们细化了主控程序(main.py)导入(get_fruits.py) 处理(process.py) 输出(output.py)
- 使用了 try 结构try except 发现异常就报错
- 输入部分的错误应该在 输入部分来报
- 具体怎么报呢?🤔
- 下次再说!👋
- 蓝桥->https://www.lanqiao.cn/courses/3584
- github->https://github.com/overmind1980/oeasy-python-tutorial
- gitee->https://gitee.com/overmind1980/oeasypython
> 我来回应
overmind的最新日记 · · · · · · ( 全部 )
热门话题 · · · · · · ( 去话题广场 )
- 端午吃什么291篇内容 · 1.1万次浏览
- 假期必备书影音清单196篇内容 · 1.6万次浏览
- 想做的事,别等“以后”1.0万+篇内容 · 362.8万次浏览
- 分享你的健康减肥法5043篇内容 · 879次浏览
- 重新养一遍自己,可真好啊1514篇内容 · 169.9万次浏览
- 你有哪些“终不似,少年游”的经历?2937篇内容 · 60.7万次浏览
- 有哪些非常醍醐灌顶的人文社科入门书籍?138篇内容 · 2744次浏览
- 第78届戛纳国际电影节281篇内容 · 125.9万次浏览