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

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

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


目录
相关文章
|
22天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
106 80
|
29天前
|
人工智能 C语言 Python
[oeasy]python051_什么样的变量名能用_标识符_identifier
本文介绍了Python中变量名的命名规则,强调标识符(identifier)必须以字母或下划线开始,后续可包含字母、下划线及数字。通过`isidentifier()`函数可验证字符串是否为合法标识符。文中还探讨了为何数字不能作为标识符的开头,并提供了相关练习与解答,最后提及这些规则源自C语言的影响。
114 69
|
1月前
|
Python
[oeasy]python050_如何删除变量_del_delete_variable
本文介绍了Python中如何删除变量,通过`del`关键字实现。首先回顾了变量的声明与赋值,说明变量在声明前是不存在的,通过声明赋予其生命和初始值。使用`locals()`函数可查看当前作用域内的所有本地变量。进一步探讨了变量的生命周期,包括自然死亡(程序结束时自动释放)和手动删除(使用`del`关键字)。最后指出,删除后的变量将无法在当前作用域中被访问,并提供了相关示例代码及图像辅助理解。
114 68
|
1天前
|
C语言 Python
[oeasy]python058_一句话让python崩了
本文介绍了如何通过重新赋值`__builtins__`使Python环境崩溃,并探讨了下划线的来历及其在编程中的作用。文章回顾了上次内容,展示了覆盖内建模块导致系统崩溃的过程,解释了恢复方法,以及PEP 8规范中关于空格使用的建议。最后,文章总结了下划线在变量定义和提高代码可读性方面的重要性,并简述了其从打字机时代到计算机时代的演变。
20 10
|
11天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
33 14
|
3天前
|
Python
[oeasy]python057_如何删除print函数_dunder_builtins_系统内建模块
本文介绍了如何删除Python中的`print`函数,并探讨了系统内建模块`__builtins__`的作用。主要内容包括: 1. **回忆上次内容**:上次提到使用下划线避免命名冲突。 2. **双下划线变量**:解释了双下划线(如`__name__`、`__doc__`、`__builtins__`)是系统定义的标识符,具有特殊含义。
18 3
|
6天前
|
存储 Python
[oeasy]python056_python中下划线是什么意思_underscore_理解_声明与赋值_改名字
在Python中,下划线有多种用途。单下划线(_)常用于避免命名冲突,如将`max`改为`max_`以保留内置函数功能。双下划线(__var__)通常用于特殊方法和属性,如`__name__`、`__doc__`等。此外,单下划线(_)在交互式解释器中表示上一次表达式的值,但不建议作为普通变量名使用。总结:下划线用于避免命名冲突及特殊标识。
13 1
|
20天前
|
C语言 Python
[oeasy]python054_python有哪些关键字_keyword_list_列表_reserved_words
本文介绍了Python的关键字列表及其使用规则。通过回顾`hello world`示例,解释了Python中的标识符命名规则,并探讨了关键字如`if`、`for`、`in`等不能作为变量名的原因。最后,通过`import keyword`和`print(keyword.kwlist)`展示了Python的所有关键字,并总结了关键字不能用作标识符的规则。
30 9
|
28天前
|
Unix 编译器 C语言
[oeasy]python052_[系统开发语言为什么默认是c语言
本文介绍了C语言为何成为系统开发的首选语言,从其诞生背景、发展历史及特点进行阐述。C语言源于贝尔实验室,与Unix操作系统相互促进,因其简洁、高效、跨平台等特性,逐渐成为主流。文章还提及了C语言的学习资料及其对编程文化的影响。
26 5
|
1月前
|
Shell Python
[oeasy]python049_[词根溯源]locals_现在都定义了哪些变量
本文介绍了Python中`locals()`函数的使用方法及其在调试中的作用。通过回顾变量赋值、连等赋值、解包赋值等内容,文章详细解释了如何利用`locals()`函数查看当前作用域内的本地变量,并探讨了变量声明前后以及导入模块对本地变量的影响。最后,文章还涉及了一些与“local”相关的英语词汇,如`locate`、`allocate`等,帮助读者更好地理解“本地”概念在编程及日常生活中的应用。
36 9
下一篇
开通oss服务