ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python笔记--错误和异常处理

2021-02-16 12:01:05  阅读:233  来源: 互联网

标签:return python float except 笔记 try -- something ValueError


错误和异常处理

优雅地处理Python的错误和异常是构建健壮程序的重要部分。在数据分析中,许多函数函数只⽤于部分输⼊。例如,Python的float函数可以将字符串转换成浮点数,但输⼊有误时,有 ValueError 错误:

In [197]: float('1.2345')
Out[197]: 1.2345
In [198]: float('something')
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-198-439904410854> in <module>()
----> 1 float('something')
ValueError: could not convert string to float: 'something'

假如想优雅地处理float的错误,让它返回输⼊值。我们可以写⼀个函数,在try/except中调⽤float:

def attempt_float(x):
	try:
		return float(x)
	except:
		return x

当float(x)抛出异常时,才会执⾏except的部分:

In [200]: attempt_float('1.2345')
Out[200]: 1.2345
In [201]: attempt_float('something')
Out[201]: 'something'

你可能只想处理ValueError,TypeError错误(输⼊不是字符串或数值)可能是合理的bug。可以写⼀个异常类型:

def attempt_float(x):
	try:
		return float(x)
	except ValueError:
		return x

可以⽤元组包含多个异常:

def attempt_float(x):
	try:
		return float(x)
	except (TypeError, ValueError):
		return x

某些情况下,你可能不想抑制异常,你想⽆论try部分的代码是否成功,都执⾏⼀段代码。可以使⽤finally:

f = open(path, 'w')
try:
	write_to_file(f)
finally:
	f.close()

标签:return,python,float,except,笔记,try,--,something,ValueError
来源: https://blog.csdn.net/qq_48657881/article/details/113823581

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有