找回密码
 注册
关于网站域名变更的通知
查看: 269|回复: 1
打印 上一主题 下一主题

给深度学习入门者的Python快速教程基础篇之异常

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-11-14 10:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
异常
2 y, l! f$ x" d3 ?相比起其他一些语言,在Python中我们可以更大胆地使用异常,因为异常在Python中是非常常见的存在,比如下面这种简单的遍历:
, D: y6 E- P  n/ c% M/ r. m9 l* H" V  ?. `+ x
a = ['Why', 'so', 'serious', '?']
! K, C* l, ~! l" R- s/ _7 J/ E5 b9 {8 p& T, f  O( N$ E
for x in a:. H. y& \: s5 D5 Y' \3 D5 J6 D: `
print(x)4 V' X- H9 n- `0 Z& ?
  _6 a$ H" j" k/ l6 k
当用for进行遍历时,会对要遍历的对象调用iter()。这需要给对象创建一个迭代器用来依次返回对象中的内容。为了能成功调用iter(),该对象要么得支持迭代协议(定义__iter__()),要么得支持序列协议(定义__getitem__())。当遍历结束时,__iter__()或者__getitem__()都需要抛出一个异常。__iter__()会抛出StopIteration,而__getitem__()会抛出IndexError,于是遍历就会停止。
4 L* |- S" d) K& L  T( L8 ?. _" s: e5 q) T# o7 I
在深度学习中,尤其是数据准备阶段,常常遇到IO操作。这时候遇到异常的可能性很高,采用异常处理可以保证数据处理的过程不被中断,并对有异常的情况进行记录或其他动作:
  _! H- |. G  F; F: @! g0 g; y5 Lfor filepath in filelist: # filelist中是文件路径的列表
0 d( g5 l( t  z9 H. Y/ vtry:* E: |. ]% B- Y6 {, H/ y5 O1 i
with open(filepath, 'r') as f:5 }5 D* J$ P' ~$ L! |" F) E
# 执行数据处理的相关工作" c5 f, x5 K5 y7 j7 p0 R7 F5 w
...& ~& J/ _. E$ \3 Z% e7 G2 @- {
& B* D1 H6 k+ u" Z
print('{} is processed!'.format(filepath))1 y% G% h* Y% X
except IOError:2 K1 C* l: H2 G' X+ t6 _1 |  B
print('{} with IOError!'.format(filepath))( A. \2 k6 S8 F
# 异常的相应处理3 i4 W6 l4 X2 U
...

. {9 t/ u0 j9 q7 c( M/ x2 {% f! T
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-23 09:21 , Processed in 0.093750 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表