首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[oeasy]python0143_主控程序_main

[oeasy]python0143_主控程序_main

原创
作者头像
oeasy
发布2023-04-29 18:01:21
发布2023-04-29 18:01:21
4180
举报

主控程序 回忆上次内容

  • 上次把 apple.py 拆分成了
  • 输入
  • 主函数
  • 引用模块中变量的时候
  • 要带上包(module)名
  • get_fruits.a
  • get_fruits.b
  • 最终
  • 拆分代码 成功!
  • 可以将程序
  • 再拆分成
  • 输入
  • 输出
  • 然后 再由主函数调用吗?🤔

建立主控

  • 新建一个 main.py 文件
  • 导入 input、output 两个包
  • 然后运行
  • vi -o main.py get_fruits.py output.py

添加图片注释,不超过 140 字(可选)

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

运行

添加图片注释,不超过 140 字(可选)

  • 运行成功

程序结构

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

尝试

  • 失败!

添加图片注释,不超过 140 字(可选)

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

文件结构

  • 可以看到出现了
  • 两个被引用包的 pyc 文件

添加图片注释,不超过 140 字(可选)

  • 能对比一下吗?

对比

添加图片注释,不超过 140 字(可选)

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

添加图片注释,不超过 140 字(可选)

  • 模块隐隐约约
  • 是可以看懂的

顺序过程

  • 其实代码可以分成三块
  • 输入
  • 处理
  • 输出

添加图片注释,不超过 140 字(可选)

  • 这是一个典型的 面向过程的 程序
  • 面向过程就是 Procedure Oriented
  • 按部就班
  • 把复杂的过程
  • 分解成 相对简单明确的模块
  • 每个模块 做自己简单明确的事情
  • 专业分工
  • 提高效率
  • 这是工业时代
  • 提高效率的思维模式

分工明确

  • 铁路警察
  • 各管一段
  • 不要想着怎么发明轮子
  • 轮子有现成的
  • 拿来用就完事了

添加图片注释,不超过 140 字(可选)

  • 接下来把模块分成三块

功能

作用

模块名

输入

接收到什么信号

get_fruits

处理

怎么处理信号

process

输出

最终输出什么信号

output

  • 那建立 process.py

三步走

  • main
  • 需要 3 个包都导入
  • process
  • 只需要导入 get_fruits
  • get_fruits
  • 虽然被导入了两次
  • 但是输入数值的部分
  • 只被执行一次
  • output
  • 只需要 process 模块求和的结果
  • 而不需要导入 get_fruits 模块
  • 需要明确 total 来自于 process 包

添加图片注释,不超过 140 字(可选)

  • 测试结果
  • 数字(123)当做测试用例的话
  • 能成功
  • 但是用字母(abc)当测试用例的话
  • 会如何呢?

不成功 🙅🏻‍♀️

添加图片注释,不超过 140 字(可选)

  • 问题出在process.py中
  • int(a) + int(b)那一步
  • 所以需要在那里
  • try
  • except

处理异常

  • 修改代码

添加图片注释,不超过 140 字(可选)

运行结果

  • 字母的测试用例
  • 可以顺利地报错

添加图片注释,不超过 140 字(可选)

  • 但是现在还面临一个问题
  • 就是不明确
  • 不知道
  • 是 a 出了问题
  • 还是 b 出了问题
  • 报错细节不明确

修改代码

  • 在process模块中
  • 分别try...except...

添加图片注释,不超过 140 字(可选)

  • 这样运行是没有问题的

优化代码

  • 不过应该还有更好的方式

添加图片注释,不超过 140 字(可选)

  • 转化工作
  • 其实应该在输入部分完成
  • 输入变量的容错处理
  • 应该在输入的时候 就第一时间做
  • 不要留到数据处理时 才做

总结

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档