python核心编程2 第十章 练习
2024-09-04 18:07:54
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))
最新文章
- R语言读取本地文件注意事项
- Javascript图表插件HighCharts用法案例
- 一个异常与Android Studio系列教程参考
- 推荐可以代替Visio的HTML开发的作图工具:ProcessOn
- JavaWeb学习记录(二十七)——定时发送邮件ServletContextListener监听实现
- git忽略文件【转】
- 数往知来JavaScript_DOM<;十>;
- 第二百一十四天 how can I 坚持
- 使用sem_post信号量进行线程同步
- Qt的SQL操作,DELETE,SELECT
- [置顶] IT老男人读《因为痛,所以叫青春》
- win7及以上系统打开chm空白或显示";无法打开";的2个解决方案
- Linux之redis-cluster(集群配置)
- C语言链表:删除有序链表中大于mink小于maxk的元素
- Python编程练习:使用 turtle 库完成正方形的绘制
- Django之Models(一)
- C++11多线程のfuture,promise,package_task
- 自学Linux Shell3.1-帮助命令man
- python Flask post 数据 输出
- cropper图片剪裁 , .toBlob()报错
热门文章
- sass(混合mixin的调用、@content)
- arcgis版接合图表5.2 免费软件,支持国家2000坐标系,ArcGIS10.0,ArcGIS10.1,ArcGIS10.2都可以使用
- SharePoint 2013 - Client Side Rendering
- Android activity跳转并且回调
- Gson 转换hibernate级联对象出现StackOverFlow(堆栈溢出)问题
- gamemakerstudio:room_speed和image_speed
- tcp/ip 调优示例
- C#实现文件异步上传
- I want to be a Great Web Front-end Developer
- Python3基本数据类型(六、字典)