[oeasy]python0144_try的完全体_否则_else_最终_finally
- 上次细化了主控程序(main.py)
- 导入(get_fruits.py)
- 处理(process.py)
- 输出(output.py)
- 使用了 try 结构
- try
- except
- 发现异常就报错
- 输入部分的错误
- 应该在 输入部分来报
- 具体怎么报呢?
- 输入的时候
- 应该包括
- 对于输入内容的验证
- 于是 再修改代码
- 输入代码 分成了
- 输入 a
- 输入 b
- 如果 输入错误数据
- 会在get_fruits.py中报错
- 如果 输入正确
- 没有输出 确认信息
- 测试通过
- 这里面有个 else
- 应该如何理解呢?
- 在游乐场帮助 里面有关于
- try 的比较明确的介绍
- else的意思是否则
- 就是没有发现异常时执行的
- else 是一个可选(optional)子句
- 如果try中发现了指定异常
- 就从try中发现错误的位置跳出来
- 只执行except部分
- 不执行else部分
- 如果try中没有发现指定的异常
- 在执行完try中的内容之后
- 不执行 except 部分
- 只运行 else 部分
- 每个输入部分 都包括
- 提示和输入
- input(“xxx”)
- 尝试转化为整型数字
- try
- int
- 异常处理
- except
- 无异常输出
- else
- try 语句当中
- 除了 else 之外
- 还有 finally
- 这就是 try 的完全体
- 注意!
- 都要有英文半角的冒号
- 都要通过 4 个字符的缩进控制范围
- finally如果存在
- 他是一个收尾的语句
- try 之后
- 要么 except
- 要么 else
- 无论是except 还是 else
- 最后 总要执行finally
- 如果执行过程中
- 还有任何的异常
- 但是这个异常没有被处理
- 那么就把这个异常先存着
- 等待finally执行之后
- 再抛出这个异常
- 如果遇到return break continue之类强制跳转语句
- 这个异常就被忽略了
- 这如何理解?
- 新建一个test.py进行测试
- 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
[oeasy]python0144_try的完全体_否则_else_最终_finally的更多相关文章
- AngularJS中的JSONP实践
欢迎大家指导与讨论: ) 概念 首先呢,Json和JSONP是不一样的哦.Json呢,是众多数据存储的其中一种格式,是数据书写方式的其中一种.好比是大中华众多诗体的一种(比如说是七言诗吧).这种诗体规 ...
- ZipArchive 打包下载压缩包
用php的header()方式下载压缩包. 要点:1.不能在header导出压缩包前向浏览器输出内容,否则文件下载压缩包成功,打开的压缩包也会显示被破坏. 2.在压缩文件包的php代码前不可以有js脚 ...
- 混合使用 ForkJoin, Akka, Future 实现一千万个不重复整数的排序
定位 本文适合于想要了解新语言 Scala 以及异步并发编程框架 Akka, Future 的筒鞋. 读完本文后,将了解如何使用 ForkJoin 框架.如何使用 Akka 构建并发程序.如何使用 ...
- XXOOJL
她的鞋子放在外面没拿进来很显眼,我们俩正抱在床上,刚做完什么也没穿,她也没擦.听到门外的脚步声.赶紧穿.她在我房间里没出声,但我父亲肯定看出来了.于是问我:母亲去哪了,然后他去找她. 太尴尬了,那晚我 ...
- Android中的布局优化方法
http://blog.csdn.net/rwecho/article/details/8951009 Android开发中的布局很重要吗?那是当然.一切的显示样式都是由这个布局决定的,你说能不重要吗 ...
- 浅谈标签构建——TagBuilder
在很多项目中,可能我们需要写一些通用的控件标签,今天来简单的学习一下吧. 在前文中已经学习了 如何自定义MVC控件标签 ,感兴趣的朋友可以去看看. 今天主要还是讲解一下TagBuilder 我们打开源 ...
- TypeScript入门,使用TypeScript编写第三方控件的方式!
这是一篇新手篇的typescript插件编写方式!!!! 源码完整地址:https://gitee.com/dissucc/typescriptLearn 1.环境安装 node下载 下载地址:htt ...
- ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字
背景是这样的: 自己写了一套接口自动化的框架,其中使用unittest + ddt + excel作为数据驱动模式的应用,使用HtmlTetstRunner来生成测试用例. 一切看起来很完美. 但是, ...
- Python装饰器、内置函数之金兰契友
装饰器:装饰器的实质就是一个闭包,而闭包又是嵌套函数的一种.所以也可以理解装饰器是一种特殊的函数.因为程序一般都遵守开放封闭原则,软件在设计初期不可能把所有情况都想到,所以一般软件都支持功能上的扩展, ...
- [NewLife.XCode]高级查询(化繁为简、分页提升性能)
NewLife.XCode是一个有10多年历史的开源数据中间件,支持nfx/netcore,由新生命团队(2002~2019)开发完成并维护至今,以下简称XCode. 整个系列教程会大量结合示例代码和 ...
随机推荐
- windows上安装mysql-5.6.44-winx64
配置MySQL配置文件my.ini.datadir一般和安装目录是分开存放的 [mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 ---这里输入你安装的文件路径- ...
- linux下常用的快捷键和$参数
1.下面介绍两个在linux下非常有用的$参数 2.!$ 表示引用上一个命令的最后一个参数,例子如下: [root@node5 ~]# echo '!$的作用是引用上一个命令的最后一个参数' > ...
- C# 在Excel中添加、应用或删除筛选器 (日期筛选、文本筛选、数字筛选)
自动筛选器是 Excel 中的一个基本但极其有用的功能,它可以让你根据特定的条件来自动隐藏和显示你的数据.当有大量的数据需要处理时,这个功能可以帮你快速找到你需要的信息,从未更加有效地分析和处理相关数 ...
- k8s中的pod更新策略
StatefulSet(有状态集,缩写为sts)常用于部署有状态的且需要有序启动的应用程序,比如在进行SpringCloud项目容器化时,Eureka的部署是比较适合用StatefulSet部署方式的 ...
- firewall防火墙基础配置
Firewalld防火墙 Centos7 中集成了防火墙管理工具, Firewall系统动态防火墙管理器是作为默认的防火墙工具. 它支持规则动态更新,并加入zone区域概念. Firewalld防火墙 ...
- Swift Lazy计算属性的线程安全分析
一.代码示例 // // ViewController.swift // LazyTest // // Created by lilun.ios on 2021/7/30. // import UIK ...
- DevOps全面综述:从概念到实践
这篇文章详尽介绍了DevOps的背景.核心实践.工具和技术,探讨了团队协作.文化建设及组织变革,旨在帮助企业高效实现持续交付和创新. 关注作者,分享互联网架构.云服务技术的全维度知识.作者拥有10+年 ...
- Linux进程间通信-FIFO(命名管道)
本系列文章主要是学习记录Linux下进程间通信的方式. 常用的进程间通信方式:管道.FIFO.消息队列.信号量以及共享存储. 参考文档:<UNIX环境高级编程(第三版)> 参考视频:Lin ...
- echarts的示例跟做出来的不一样
先给大家看下我做出来的和echarts官网做出来的 代码什么的都是一模一样但是颜色不一样 它字的颜色和柱状图颜色还一样不知道是不是脑子有猫病~ 上面是我做的 下面是官网的 主要是代码都是一样 我又不 ...
- 浅谈ChatGPT模型中的惩罚机制
本文由ChatMoney团队出品 在探讨ChatGPT模型的文本生成能力时,除了采样算法,惩罚机制同样扮演着至关重要的角色.这些机制不仅影响生成文本的多样性和创意性,还为我们提供了调整文本风格和质量的 ...