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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
异常
+ [6 C5 Y' m1 L% u1 b( e+ [- `相比起其他一些语言,在Python中我们可以更大胆地使用异常,因为异常在Python中是非常常见的存在,比如下面这种简单的遍历:
( w9 h# d0 B0 n  l2 k! l' {- n% Q! _/ e; B
a = ['Why', 'so', 'serious', '?']3 S" x1 D* I& l3 C
0 y' c$ A, U6 T6 i8 F( ]1 `
for x in a:) ], t7 R. [$ ^6 J
print(x)
$ r% A* v3 f6 ]( M, \" a7 Y! f9 D0 f
当用for进行遍历时,会对要遍历的对象调用iter()。这需要给对象创建一个迭代器用来依次返回对象中的内容。为了能成功调用iter(),该对象要么得支持迭代协议(定义__iter__()),要么得支持序列协议(定义__getitem__())。当遍历结束时,__iter__()或者__getitem__()都需要抛出一个异常。__iter__()会抛出StopIteration,而__getitem__()会抛出IndexError,于是遍历就会停止。
5 u4 h$ ?/ d! r+ B. T, v( ]3 s2 \  y, C4 w
在深度学习中,尤其是数据准备阶段,常常遇到IO操作。这时候遇到异常的可能性很高,采用异常处理可以保证数据处理的过程不被中断,并对有异常的情况进行记录或其他动作:
+ H& k2 h0 m1 b) u( u$ C) ~! f9 Y! wfor filepath in filelist: # filelist中是文件路径的列表
& a4 Y" G. l: Ftry:
) }0 B  |6 }- P/ s: wwith open(filepath, 'r') as f:
# y3 h1 t7 L. ?2 p; S! |# 执行数据处理的相关工作
) a$ X: e3 q. ]# o0 E...
" h" N# g2 w  y4 M6 B8 F; j' Q! X7 `) B+ a/ V
print('{} is processed!'.format(filepath))
  S5 g  z7 T' x8 w1 oexcept IOError:, u) V) Q5 o1 [$ H+ m4 X2 v
print('{} with IOError!'.format(filepath))* _6 B/ K& d) G+ s' X7 R
# 异常的相应处理3 E, o6 h" M" D
...

6 A0 L% _- _# T$ a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-6 12:55 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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