首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python核心编程2 第十章 练习

python核心编程2 第十章 练习

作者头像
py3study
发布2020-01-22 21:24:29
3570
发布2020-01-22 21:24:29
举报
文章被收录于专栏:python3python3

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

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

 1 def openfile(file):
 2     try:
 3         f = open(file)
 4     except IOError:
 5         return None
 6     return file
 7 
 8 if __name__ == '__main__':
 9     filename = input('Filename:')
10     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。

 1 def safe_input(object):
 2 
 3     try:
 4         retval = float(object)
 5     except (EOFError, KeyboardInterrupt):
 6         retval = None
 7     return retval
 8 
 9 if __name__ == '__main__':
10     print(safe_input(input("Input: ")))

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

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

 1 import math, cmath
 2 
 3 def safe_sqrt(x):
 4     try:
 5         num = math.sqrt(x)
 6     except ValueError:
 7         num = cmath.sqrt(x)
 8     return num
 9 
10 if __name__ == '__main__':
11     x = float(input('Number: '))
12     print(safe_sqrt(x))
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档