try的完全体
回忆上次内容
 
  • 上次细化了主控程序(main.py)
  • 导入(get_fruits.py)
  • 处理(process.py)
  • 输出(output.py)
 
  • 使用了 try 结构
  • try
  • except
  • 发现异常就报错
 
  • 输入部分的错误
  • 应该在 输入部分来报
 
  • 具体怎么报呢?
 
完善输入
 
  • 输入的时候
  • 应该包括
  • 对于输入内容的验证
 
  • 于是 再修改代码
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 输入代码 分成了
  • 输入 a
  • 输入 b
 
 
运行结果
 
  • 如果 输入错误数据
  • 会在get_fruits.py中报错
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 如果 输入正确
  • 没有输出 确认信息
 
 
 

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

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

 
添加图片注释,不超过 140 字(可选)
 
 
  • 这里面有个 else
  • 应该如何理解呢?
 
 
查询帮助
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 在游乐场帮助 里面有关于
  • try 的比较明确的介绍
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
else
 
  • else的意思是否则
  • 就是没有发现异常时执行的
 
  • else 是一个可选(optional)子句
  • 如果try中发现了指定异常
  • 就从try中发现错误的位置跳出来
  • 只执行except部分
  • 不执行else部分
 
  • 如果try中没有发现指定的异常
  • 在执行完try中的内容之后
  • 不执行 except 部分
  • 只运行 else 部分
 
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 每个输入部分 都包括
  • 提示和输入
  • input(“xxx”)
 
  • 尝试转化为整型数字
  • try
  • int
 
  • 异常处理
  • except
 
  • 无异常输出
  • else
 
 
  • try 语句当中
  • 除了 else 之外
  • 还有 finally
 
 
综合一下
 
  • 这就是 try 的完全体
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 注意!
  • 都要有英文半角的冒号
  • 都要通过 4 个字符的缩进控制范围
 
 
finally
 
  • finally如果存在
  • 他是一个收尾的语句
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • try 之后
  • 要么 except
  • 要么 else
  • 无论是except 还是 else
  • 最后 总要执行finally
 
 
  • 如果执行过程中
  • 还有任何的异常
  • 但是这个异常没有被处理
  • 那么就把这个异常先存着
  • 等待finally执行之后
  • 再抛出这个异常
 
  • 如果遇到return break continue之类强制跳转语句
  • 这个异常就被忽略了
 
 
  • 这如何理解?
  • 新建一个test.py进行测试
 
理解finally
 
  • try里面有一个ValueError
  • 不执行后面的d = i / 0
  • 跳到except
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • except中
  • 没有ValueError的处理办法
  • ValueError没有被处理
  • 于是ValueError就存着
 
  • 由于出现了异常
  • 已经进入了except
  • 无法进入else
 
  • 最后进入finally执行
  • 输出了At Last
 
  • 执行外finally语句块
  • 才把这个ValueError最后抛出来
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 这就是finally的执行逻辑
  • 回到main.py
 
整体结构
 
  • 这个结构就是
  • 典型的面向过程程序设计方法
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 有一个主要的流程控制模块 main.py
  • 就像python语言这个声明
  • 有一个主要的决策者Guido一样
 
 
 
仁慈的独裁者
 
  • 彻底的仁慈
  • 意味着 没有主见和行动力下降
 
  • 彻底的独裁
  • 则会 失去广泛的帮助
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 仁慈和独裁像
  • 是矛盾的两面
  • 但是Guido却很好地平衡了两者
 
  • 除了Guido之外
  • 很多开源项目的老大
  • 也有类似的特性
 
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • Guido是如何成长的呢?
 
扩展视野
 
  • Guido 利用假期去美国做一些WorkShop
  • 美国硅谷是当时it的潮头
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 很早接触到了
  • 互联网的发展趋势
 
 
互联网
 
  • Guido做了一个浏览器grail
 
 

 
添加图片注释,不超过 140 字(可选)
 
网络集聚
 
  • 网络的能量越来大
  • 这为python的发展做了很好的准备
  • 媒介
  • 从报纸、杂志、电视
  • 发展到邮件、论坛和浏览器
 
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 有人 就有 应用
  • 有应用 就更有 人
  • 于是会形成 正反馈
  • 有了社区 就会有更多的人 加入社区
 
  • 其实学编程 也是一样
  • 越熟练 就会越自信
  • 越自信 也就会越熟练
 
 
总结
 
  • 我们了解了 try 的完全体
  • try
  • 尝试运行
 
  • except
  • 发现异常时运行的代码块
 
  • else
  • 没有发现异常时运行的代码块
 
  • finally
  • 无论是否发现异常最终都要运行的代码块
 
 
 
 

 
添加图片注释,不超过 140 字(可选)
 
 
  • 发现导入部分
  • 可以再分为两个子模块
  • 一个输入 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的更多相关文章

  1. AngularJS中的JSONP实践

    欢迎大家指导与讨论: ) 概念 首先呢,Json和JSONP是不一样的哦.Json呢,是众多数据存储的其中一种格式,是数据书写方式的其中一种.好比是大中华众多诗体的一种(比如说是七言诗吧).这种诗体规 ...

  2. ZipArchive 打包下载压缩包

    用php的header()方式下载压缩包. 要点:1.不能在header导出压缩包前向浏览器输出内容,否则文件下载压缩包成功,打开的压缩包也会显示被破坏. 2.在压缩文件包的php代码前不可以有js脚 ...

  3. 混合使用 ForkJoin, Akka, Future 实现一千万个不重复整数的排序

    定位  本文适合于想要了解新语言 Scala 以及异步并发编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何使用 ForkJoin 框架.如何使用 Akka 构建并发程序.如何使用 ...

  4. XXOOJL

    她的鞋子放在外面没拿进来很显眼,我们俩正抱在床上,刚做完什么也没穿,她也没擦.听到门外的脚步声.赶紧穿.她在我房间里没出声,但我父亲肯定看出来了.于是问我:母亲去哪了,然后他去找她. 太尴尬了,那晚我 ...

  5. Android中的布局优化方法

    http://blog.csdn.net/rwecho/article/details/8951009 Android开发中的布局很重要吗?那是当然.一切的显示样式都是由这个布局决定的,你说能不重要吗 ...

  6. 浅谈标签构建——TagBuilder

    在很多项目中,可能我们需要写一些通用的控件标签,今天来简单的学习一下吧. 在前文中已经学习了 如何自定义MVC控件标签 ,感兴趣的朋友可以去看看. 今天主要还是讲解一下TagBuilder 我们打开源 ...

  7. TypeScript入门,使用TypeScript编写第三方控件的方式!

    这是一篇新手篇的typescript插件编写方式!!!! 源码完整地址:https://gitee.com/dissucc/typescriptLearn 1.环境安装 node下载 下载地址:htt ...

  8. ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字

    背景是这样的: 自己写了一套接口自动化的框架,其中使用unittest + ddt + excel作为数据驱动模式的应用,使用HtmlTetstRunner来生成测试用例. 一切看起来很完美. 但是, ...

  9. Python装饰器、内置函数之金兰契友

    装饰器:装饰器的实质就是一个闭包,而闭包又是嵌套函数的一种.所以也可以理解装饰器是一种特殊的函数.因为程序一般都遵守开放封闭原则,软件在设计初期不可能把所有情况都想到,所以一般软件都支持功能上的扩展, ...

  10. [NewLife.XCode]高级查询(化繁为简、分页提升性能)

    NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...

随机推荐

  1. wxpython模块详解

    一.python gui(图形化)模块介绍: Tkinter :是python最简单的图形化模块,总共只有14种组建 Pyqt     :是python最复杂也是使用最广泛的图形化 Wx       ...

  2. 推荐几款卓越的 .NET 开源搜索组件

    前言 在当今日益数据化的世界中,信息的检索和搜索功能对于各种应用来说变得至关重要. 无论是电子商务网站.企业资源规划系统.还是内容管理系统,高效的搜索功能都是提升用户体验.促进业务发展的关键. 因此, ...

  3. 【WPF】自定义数据集合绑定到UI界面

    需要展示列表项,从https://github.com/jdscodelab/File-Manager-UI-Wpf这个项目,只有前端UI. 复用了其文件内容列表   主要源码: <StackP ...

  4. oidc-client.js踩坑吐槽贴

    前言 前面选用了IdentityServer4做为认证授权的基础框架,感兴趣的可以看上篇<微服务下认证授权框架的探讨>,已经初步完成了authorization-code与implicit ...

  5. C#笔记(1)窗体

    1. 隐藏TabPage 在使用TabControl控件时,希望隐藏其中某个选项卡(即TabPage).设置该TabPage的父容器为null 即可,如TabPage.Parent = null .如 ...

  6. uniapp SyntaxError: Unexpected token u in JSON at position 0 解决方案

    今天在做页面跳转传值的时候,一直出现下面的报错: 后来查看了下文档,说如果你的JSON数据是在上一个页面传值过来的话, 这时候在接收数据页解析JSON也会报该错误,因为此时并没有相关的JSON数据从上 ...

  7. 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流

    防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数 什么是防抖和节流? 在 JavaScript 中,防抖(deboun ...

  8. 简单实现Viper配置管理

    本文由 ChatMoney团队出品 简介 前面实现的一个简易suno-api.是使用cookie来获取suno-token发起请求的.当时并没有通过配置的方式来获取cookie,而是直接在代码中写死了 ...

  9. 590. N 叉树的后序遍历 | Javascript 递归实现

    题目 题目链接:590. N 叉树的后序遍历 解题思路 递归后续遍历,正常的思路 然后有一个要注意的地方就是如果js定义了全局变量来存储结果,每次调用函数之前一定要记得清空,否则答案会带上之前的结果. ...

  10. 浅谈 DDD 领域驱动设计

    文章简介 在B端产品研发及项目实施中,DDD带给我们哪些思考?我们是如何应用的?本文不是科普贴,旨在分享我们的经历和思考. 背景 Domain Driven Design(简称 DDD),又称为领域驱 ...