观察:[oeasy]python0143_主控程序_main

来源:哔哩哔哩 2023-04-29 17:56:24

主控程序

回忆上次内容

上次把 apple.py 拆分成了


(资料图)

输入

主函数

引用模块中变量的时候

get_fruits.a

get_fruits.b

要带上包(module)名

最终

拆分代码 成功!

可以将程序

输入

输出

再拆分成

然后 再由主函数调用吗?

建立主控

新建一个 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

关键词:

上一篇: 快资讯丨Messer梅塞尔品牌介绍_梅塞尔激光切割机
下一篇:[崩坏三]崩坏之纪(4)时间之异(下)
为你精选