python try/except/finally

news/2025/2/21 7:03:08/

在这里插入图片描述

稍微总结一下,否则总是忘。

x = 'abc' 
def fetcher(obj, index):  return obj[index]  fetcher(x, 4)  

输出:

  File "test.py", line 6, in <module>  fetcher(x, 4)  File "test.py", line 4, in fetcher  return obj[index]  
IndexError: string index out of range  

第一: try不仅捕获异常,而且会恢复执行

def catcher():  try:  fetcher(x, 4)  except:  print "got exception" print "continuing" 
  1. 输出:
got exception  
continuing  

第二:无论try是否发生异常,finally总会执行

def catcher():  try:  fetcher(x, 4)  finally:  print 'after fecth' 

输出:

after fecth  
Traceback (most recent call last):  File "test.py", line 55, in <module>  catcher()  File "test.py", line 12, in catcher  fetcher(x, 4)  File "test.py", line 4, in fetcher  return obj[index]  
IndexError: string index out of range  

第三:try无异常,才会执行else

def catcher():  try:  fetcher(x, 4)  except:  print "got exception" else:  print "not exception" 

输出:

got exception  def catcher():  try:  fetcher(x, 2)  except:  print "got exception" else:  print "not exception" 

输出:

not exception  

else作用:没有else语句,当执行完try语句后,无法知道是没有发生异常,还是发生了异常并被处理过了。通过else可以清楚的区分开。

第四:利用raise传递异常

def catcher():  try:  fetcher(x, 4)  except:  print "got exception" raise 

输出:

got exception  
Traceback (most recent call last):  File "test.py", line 37, in <module>  catcher()  File "test.py", line 22, in catcher  fetcher(x, 4)  File "test.py", line 4, in fetcher  return obj[index]  
IndexError: string index out of range  

raise语句不包括异常名称或额外资料时,会重新引发当前异常。如果希望捕获处理一个异常,而又不希望

异常在程序代码中消失,可以通过raise重新引发该异常。

第五:except(name1, name2)

def catcher():  try:  fetcher(x, 4)  except(TypeError, IndexError):  print "got exception" else:  print "not exception" 

捕获列表列出的异常,进行处理。若except后无任何参数,则捕获所有异常。

def catcher():  try:  fetcher(x, 4)  except:  print "got exception" 

更多Python的学习资料可以扫描下方二维码无偿领取!!!

1)Python所有方向的学习路线(新版)

总结的Python爬虫和数据分析等各个方向应该学习的技术栈。

在这里插入图片描述

比如说爬虫这一块,很多人以为学了xpath和PyQuery等几个解析库之后就精通的python爬虫,其实路还有很长,比如说移动端爬虫和JS逆向等等。

img

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然达不到大佬的程度,但是精通python是没有问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述


http://www.ppmy.cn/news/973728.html

相关文章

【Mycat2】关于序列功能的一个 Bug

创建序列前 Mycat 的 sequences/ 目录情况&#xff1a; 创建一个 MySQL 生成方式的序列。 /* mycat:setSequence{"name":"sharding_db_not_tb111","clazz":"io.mycat.plug.sequence.SequenceMySQLGenerator"} */;因为没有官方文档支…

LeetCode1143.Longest-Common-Subsequence<最长公共子序列>

题目&#xff1a; 思路&#xff1a; 我也不会,看出来了是动态规划,然后想着用sort试试. 看的题解.每一次扫描 双重for循环扫描字符(感觉这和一个个对比双指针区别不大了)..这动态规划也太笨重. 循环扫描数组。当字符相同的时候 1&#xff0c;否则等于它们之前较大的那一个。…

力扣热门100题之三数之和【中等】

题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组…

微信小程序使用讯飞接口语音识别

之前看过网上其他几位使用讯飞的接口来做微信小程序的。在自己实际跟着别人的博客做的时候&#xff0c;却又会遇到一些问题。所以在此对使用讯飞接口做一个总结。这里我是用WebAPI来做。1. 申请科大讯飞的接口 科大讯飞的官方网站 进入官网之后&#xff0c;登陆账号&#xff…

Android科大讯飞语音集成,非常详细的使用讲解

讯飞语音开发集成地址http://www.xfyun.cn/ 解压后的doc文件夹下的msc develop 文件中有详细集成步骤 AppId: 1.先要注册开发者账户, 添加我的应用 , 下载sdk 2.下载后将sdk解压, 把案例导入工程中运行看看效果 3.将libs下的两个jar包添加到libs目录下, 将同路径下的其它 …

tp中如何调用科大讯飞的语音转写

1.首先注册科大讯飞&#xff08;https://www.xfyun.cn/&#xff09;&#xff0c;拿到语音转写的APPID以及SecretKey 2.将我的压缩包放到tp的扩展类库目录&#xff08;extend&#xff09;中。解压 3.在控制里面的调用方式 重点注意&#xff1a; 1.一定要是科大讯飞语音转写的A…

为什么学习SpringSpring框架核心与设计思想(IOC与DI)?

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE进阶 目录 文章目录 一、Spring是什么&#xff1f; 二、为什么要学习框架&#xff1f; 三、Spring核心概念 3.1 什么是容器&#xff1f; 3.2 什么是IOC&#xff1f; 四、再谈Spring中的 IOC 五…

移动开发-语音识别-调用讯飞平台提供的API

1 登录讯飞平台&#xff0c;申请账号&#xff0c;创建一个应用 具体步骤可以百度查找 2 进入“我的应用”&#xff0c;下载相应的SDK文件 选择语音听写&#xff08;流式版&#xff09;-> Android MSC 3 打开安卓&#xff0c;新建项目 创建一个EditText和一个Button &…