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

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中发现了指定异常
      • 就从try中发现错误的位置跳出来
      • 只执行except部分
      • 不执行else部分
    • 如果try中没有发现指定的异常
      • 在执行完try中的内容之后
      • 不执行 except 部分
      • 只运行 else 部分

图片描述

  • 每个输入部分 都包括

    • 提示和输入
      • input(“xxx”)
    • 尝试转化为整型数字
      • try
      • int
    • 异常处理
      • except
    • 无异常输出
      • else
  • try 语句当中

    • 除了 else 之外
    • 还有 finally

综合一下

  • 这就是 try 的完全体

图片描述

  • 注意!
    • 都要有英文半角的冒号
    • 都要通过 4 个字符的缩进控制范围

finally

  • finally如果存在
    • 他是一个收尾的语句

图片描述

  • try 之后
    • 要么 except
    • 要么 else
    • 无论是except 还是 else
      • 最后 总要执行finally
  • 如果执行过程中
    • 还有任何的异常
      • 但是这个异常没有被处理
      • 那么就把这个异常先存着
      • 等待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
    • 就像python语言这个声明
      • 有一个主要的决策者Guido一样

仁慈的独裁者

  • 彻底的仁慈
    • 意味着 没有主见和行动力下降
  • 彻底的独裁
    • 则会 失去广泛的帮助

图片描述

  • 仁慈和独裁像
    • 是矛盾的两面
    • 但是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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值