10-6.改进的open()。为内建的open()函数创建一个封装。使得成功打开文件后,返回文件句柄:若打开失败则返回给调用者None,

而不是生成一个异常。这样你打开文件就不需要额外的异常处理语句。

 def openfile(file):
try:
f = open(file)
except IOError:
return None
return file if __name__ == '__main__':
filename = input('Filename:')
print(openfile(filename))

10–8.改进的raw_input()。本章的开头,我们给出了一个”安全”的float()函数,它建立在内建函数float()上,可以检测并处理float()可能会引发的两种不同异常。

同样,raw_input()函数也可能会生成两种异常,EOFError(文件末尾EOF,在Unix下是由于按下了Ctrl+D在Dos下是因为 Ctrl+Z)或是KeyboardInterrupt(取消输入,

一般是由于按下了Ctrl+C)。请创建一个封装函数safe_input(),在发生异常时返回None。

 def safe_input(object):

     try:
retval = float(object)
except (EOFError, KeyboardInterrupt):
retval = None
return retval if __name__ == '__main__':
print(safe_input(input("Input: ")))

10-9.改进的math.sqrt()。math模块包含大量用于处理数值相关运算的函数和常量。不幸的是,它不能识别复数,所以我们创建了cmath模块来支持复数相关运算。

请创建一个safe_sqrt()函数,它封装math.sqrt()并能处理负值,返回一个对应的复数。

 import math, cmath

 def safe_sqrt(x):
try:
num = math.sqrt(x)
except ValueError:
num = cmath.sqrt(x)
return num if __name__ == '__main__':
x = float(input('Number: '))
print(safe_sqrt(x))

最新文章

  1. R语言读取本地文件注意事项
  2. Javascript图表插件HighCharts用法案例
  3. 一个异常与Android Studio系列教程参考
  4. 推荐可以代替Visio的HTML开发的作图工具:ProcessOn
  5. JavaWeb学习记录(二十七)——定时发送邮件ServletContextListener监听实现
  6. git忽略文件【转】
  7. 数往知来JavaScript_DOM<十>
  8. 第二百一十四天 how can I 坚持
  9. 使用sem_post信号量进行线程同步
  10. Qt的SQL操作,DELETE,SELECT
  11. [置顶] IT老男人读《因为痛,所以叫青春》
  12. win7及以上系统打开chm空白或显示"无法打开"的2个解决方案
  13. Linux之redis-cluster(集群配置)
  14. C语言链表:删除有序链表中大于mink小于maxk的元素
  15. Python编程练习:使用 turtle 库完成正方形的绘制
  16. Django之Models(一)
  17. C++11多线程のfuture,promise,package_task
  18. 自学Linux Shell3.1-帮助命令man
  19. python Flask post 数据 输出
  20. cropper图片剪裁 , .toBlob()报错

热门文章

  1. sass(混合mixin的调用、@content)
  2. arcgis版接合图表5.2 免费软件,支持国家2000坐标系,ArcGIS10.0,ArcGIS10.1,ArcGIS10.2都可以使用
  3. SharePoint 2013 - Client Side Rendering
  4. Android activity跳转并且回调
  5. Gson 转换hibernate级联对象出现StackOverFlow(堆栈溢出)问题
  6. gamemakerstudio:room_speed和image_speed
  7. tcp/ip 调优示例
  8. C#实现文件异步上传
  9. I want to be a Great Web Front-end Developer
  10. Python3基本数据类型(六、字典)