代码如下:
#encoding=utf-8 print '中国' #在表达式中处理异常 #借助辅助函数 def throws(t,f,*a,**k): '''如果f(*a,**k)抛出一个异常,而且类型是t的话返回true''' try: f(*a,**k) except t: return True else: return False #d:\123.txt内容如下 #2014,3,23 data=[float(line) for line in open(r'd:\123.txt') if not throws(ValueError,float,line)] print data def returns(t, f, *a, **k): try: return [ f(*a, **k) ] except t: return [ ] data=[x for line in open(r'd:\123.txt') for x in returns(ValueError,float,line)] print data
打印结果如下:
中国
[]
[]