[oeasy]python0143_主控程序_main

简介: [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


添加图片注释,不超过 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 字(可选)

  • 转化工作
  • 其实应该在输入部分完成


  • 输入变量的容错处理
  • 应该在输入的时候 就第一时间做
  • 不要留到数据处理时 才做


总结

  • 我们细化了主控程序(main.py)
  • 导入(get_fruits.py)
  • 处理(process.py)
  • 输出(output.py)


  • 使用了 try 结构
  • try
  • except
  • 发现异常就报错


  • 输入部分的错误
  • 应该在 输入部分来报



目录
相关文章
|
23天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
23天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
25天前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
26天前
|
人工智能 Shell 开发工具
[oeasy]python0041_输出ASCII码表_英文字符编码_键盘字符_ISO_646
本文介绍了ASCII码表的生成与使用,包括英文字符、数字和符号的编码。通过Python代码遍历0到127的ASCII值,解决了找不到竖线符号的问题,并解释了ASCII码的固定映射关系及其重要性。文章还介绍了ASCII码的历史背景,以及它如何成为国际标准ISO 646。最后,通过安装`ascii`程序展示了完整的ASCII码表。
17 1
|
1月前
|
机器学习/深度学习 算法 编译器
Python程序到计算图一键转化,详解清华开源深度学习编译器MagPy
【10月更文挑战第26天】MagPy是一款由清华大学研发的开源深度学习编译器,可将Python程序一键转化为计算图,简化模型构建和优化过程。它支持多种深度学习框架,具备自动化、灵活性、优化性能好和易于扩展等特点,适用于模型构建、迁移、部署及教学研究。尽管MagPy具有诸多优势,但在算子支持、优化策略等方面仍面临挑战。
67 3
|
1月前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
32 4
|
1月前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
40 3
|
1月前
|
存储 人工智能 数据挖掘
Python编程入门:构建你的第一个程序
【10月更文挑战第22天】编程,这个听起来高深莫测的词汇,实际上就像搭积木一样简单有趣。本文将带你走进Python的世界,用最浅显的语言和实例,让你轻松掌握编写第一个Python程序的方法。无论你是编程新手还是希望了解Python的爱好者,这篇文章都将是你的理想起点。让我们一起开始这段奇妙的编程之旅吧!
26 3
|
2月前
|
存储 Python
[oeasy]python038_ range函数_大小写字母的起止范围_start_stop
本文介绍了Python中`range`函数的使用方法及其在生成大小写字母序号范围时的应用。通过示例展示了如何利用`range`和`for`循环输出指定范围内的数字,重点讲解了小写和大写字母对应的ASCII码值范围,并解释了`range`函数的参数(start, stop)以及为何不包括stop值的原因。最后,文章留下了关于为何`range`不包含stop值的问题,留待下一次讨论。
25 1
|
1月前
|
人工智能 开发工具 Python
[oeasy]python040_缩进几个字符好_输出所有键盘字符_循环遍历_indent
本文探讨了Python代码中的缩进问题。通过研究`range`函数和`for`循环,发现缩进对于代码块的执行至关重要。如果缩进不正确,程序会抛出`IndentationError`。文章还介绍了Python的PEP8规范,推荐使用4个空格进行缩进,并通过示例展示了如何使用Tab键实现标准缩进。最后,通过修改代码,输出了从0到122的字符及其对应的ASCII码值,但未能找到竖线符号(`|`)。文章在总结中提到,下次将继续探讨竖线符号的位置。
12 0