show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次把apple.py拆分了
- 拆成了输入和输出两部分
- import可以导入本地的python文件
- 而且被导入的文件还被变成了看不太懂的文件
- 放在__pycache__里面
- 看起来像一个缓存
- 使用变量的时候
- 要使用上包名input
- input.a
- input.b
- 最终拆分代码成功
- 我又有了新想法🤪
- 建立一个主控程序
- 分别导入输入和输出
- 可以么?🤔
- 新建一个main.py 文件
- 导入input、output两个包
- 然后运行
- 运行成功
- 既然我在main.py 里面已经导入了input这个包
- 我还有必要在output中导入这个包么?
- 实践出真知
- 还是需要在output中导入input这个包的
- 虽然main认识了input
- 但是output不认识也不行
- 不认识就无从得到输入的数值
- 我们跳出去观察文件架结构
- 我们是可以看到出现了两个被引用包的pyc文件
- 里面的字符串并没有完全加密
- 是可以看懂的
- 还可以怎么玩么?
- 其实代码可以分成三块
- 输入
- 处理
- 输出
- 这是一个典型的面向过程的程序
- 面向过程就是Procedure Oriented
- 按部就班 把复杂的过程分解成相对简单明确的模块
- 每个模块做自己简单明确的事情
- 专业分工
- 提高效率
- 而且代码可以复用
- 输入部分
- 可以对接别的process比如说乘除之类
- 处理部分
- 上面可以不接着两种水果
- 而接着两种动物
- 输出部分
- 可以接收别的运算的结果
- 接收到什么信号 - 输入 - input
- 怎么处理信号 - 处理 - process
- 最终输出什么信号 - 输出 - output
- 那建立process.py
- main需要3个包都导入
- process只需要导入input
- input虽然被导入了两次
- 但是输入部分只被执行一次
- output只需要process模块求和的结果
- 而不需要导入input模块
- output中不再导入input
- output中没有total
- 需要明确total来自于process包
- 数字当做测试用例的话,能成功
- 但是用字母当测试用例不成功
- 问题出在强制转化为整型变量那一步
- 所以需要在那里
- try except
- 修改代码
- 字母的测试用例通过了
- 但是现在还面临一个问题
- 就是不明确
- 就是到底是a出了问题还是b出了问题不明确
- 在转化的时候都加上了try except
- 但是运行的时候
- 不合理
- 转化工作其实应该在输入部分完成
- 输入变量的容错处理
- 应该在输入的时候就第一时间做
- 不要留到数据处理的模块才做
- 输入的时候
- 应该包括对于输入内容的验证
- 于是再修改代码
- 代码分成了输入a和输入b两个部分
- 但是代码还是有问题
- 因为如果转化为整型成功
- string + int 又是不合理的
- 我们把加号变成逗号
- 尝试一下测试用例
- 测试通过
- 这里面有个else
- else 的意思就是否则
- 如果没有异常except 发生
- 就运行else里面内容
- 每个输入部分都包括
- 提示和输入
- input
- 尝试转化为整型数字
- try
- int
- 异常处理
- except
- 非异常处理
- else
- 提示和输入
- 除此之外还有finally
- 注意都要有英文半角的冒号
- 都要通过4个字符的缩进控制范围
- 这就是try的完全体
- 我们强化了主控过程
- 导入
- 处理
- 输出
- 了解了try的完全体
- try
- except
- else
- finally
- 发现导入部分
- 可以再分为两个子模块
- 一个输入a
- 一个输入b
- 可以再拆分么?🤔
- 我们下次再说!👋