欢迎光临散文网 会员登陆 & 注册

[oeasy]python0144_try的完全体_否则_else_最终_finally

2023-04-30 12:32 作者:oeasy  | 我要投稿

try的完全体

回忆上次内容

  • 上次细化了主控程序(main.py)

    • 导入(get_fruits.py)

    • 处理(process.py)

    • 输出(output.py)

  • 使用了 try 结构

    • try

    • except

    • 发现异常就报错

  • 输入部分的错误

    • 应该在 输入部分来报

  • 具体怎么报呢?🤔

完善输入

  • 输入的时候

    • 对于输入内容的验证

    • 应该包括

    • 于是 再修改代码

  • 输入代码 分成了

    • 输入 a

    • 输入 b

运行结果

  • 如果 输入错误数据

    • 会在get_fruits.py中报错

  • 如果 输入正确

    • 没有输出 确认信息

继续修改

  • 测试通过

  • 这里面有个 else

    • 应该如何理解呢?

查询帮助

  • 在游乐场帮助 里面有关于

    • try 的比较明确的介绍

else

  • else的意思是否则

    • 就是没有发现异常时执行的

  • else 是一个可选(optional)子句

    • 在执行完try中的内容之后

    • 不执行 except 部分

    • 只运行 else 部分

    • 就从try中发现错误的位置跳出来

    • 只执行except部分

    • 不执行else部分

    • 如果try中发现了指定异常

    • 如果try中没有发现指定的异常

    • 每个输入部分 都包括

      • else

      • except

      • try

      • int

      • input(“xxx”)

      • 提示和输入

      • 尝试转化为整型数字

      • 异常处理

      • 无异常输出

      • try 语句当中

        • 除了 else 之外

        • 还有 finally

      综合一下

      • 这就是 try 的完全体

      • 注意!

        • 都要有英文半角的冒号

        • 都要通过 4 个字符的缩进控制范围

      finally

      • finally如果存在

        • 他是一个收尾的语句

      • try 之后

        • 最后 总要执行finally

        • 要么 except

        • 要么 else

        • 无论是except 还是 else

      • 如果执行过程中

        • 这个异常就被忽略了

        • 但是这个异常没有被处理

        • 那么就把这个异常先存着

        • 等待finally执行之后

        • 再抛出这个异常

        • 还有任何的异常

        • 如果遇到return break continue之类强制跳转语句

        • 这如何理解?

        • 新建一个test.py进行测试

        理解finally

        • try里面有一个ValueError

          • 不执行后面的d = i / 0

          • 跳到except

        • except中

          • 没有ValueError的处理办法

          • ValueError没有被处理

          • 于是ValueError就存着

        • 由于出现了异常

          • 已经进入了except

          • 无法进入else

        • 最后进入finally执行

          • 输出了At Last

        • 执行外finally语句块

          • 才把这个ValueError最后抛出来

        • 这就是finally的执行逻辑

        • 回到main.py

        整体结构

        • 这个结构就是

          • 典型的面向过程程序设计方法

        • 有一个主要的流程控制模块 main.py

          • 有一个主要的决策者Guido一样

          • 就像python语言这个声明

        仁慈的独裁者

        • 彻底的仁慈

          • 意味着 没有主见和行动力下降

        • 彻底的独裁

          • 则会 失去广泛的帮助

        • 仁慈和独裁像

          • 是矛盾的两面

          • 但是Guido却很好地平衡了两者

        • 除了Guido之外

          • 也有类似的特性

          • 很多开源项目的老大

        • Guido是如何成长的呢?

        扩展视野

        • Guido 利用假期去美国做一些WorkShop

          • 美国硅谷是当时it的潮头

        • 很早接触到了

          • 互联网的发展趋势

        互联网

        • Guido做了一个浏览器grail

        网络集聚

        • 网络的能量越来大

          • 从报纸、杂志、电视

          • 发展到邮件、论坛和浏览器

          • 这为python的发展做了很好的准备

          • 媒介

        • 有人 就有 应用

          • 有应用 就更有 人

          • 于是会形成 正反馈

          • 有了社区 就会有更多的人 加入社区

        • 其实学编程 也是一样

          • 越熟练 就会越自信

          • 越自信 也就会越熟练

        总结

        • 我们了解了 try 的完全体

          • 无论是否发现异常最终都要运行的代码块

          • 没有发现异常时运行的代码块

          • 发现异常时运行的代码块

          • 尝试运行

          • try

          • except

          • else

          • finally

          • 发现导入部分

            • 可以再分为两个子模块

            • 一个输入 a

            • 一个输入 b

          • 可以再拆分么?🤔

          • 我们下次再说!👋

          • 蓝桥->https://www.lanqiao.cn/courses/3584

          • github->https://github.com/overmind1980/oeasy-python-tutorial

          • gitee->https://gitee.com/overmind1980/oeasypython


          [oeasy]python0144_try的完全体_否则_else_最终_finally的评论 (共 条)

          分享到微博请遵守国家法律