python核心编程2 第十章 练习
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))
python核心编程2 第十章 练习的更多相关文章
- 《Python核心编程》 第十章 错误和异常
10–1. 引发异常. 以下的哪个因素会在程序执行时引发异常? 注意这里我们问的并不是异常的原因. a) 用户 b) 解释器 c) 程序 d) 以上所有 e) 只有 b) 和 c) f) 只有 a) ...
- python核心编程(第二版)习题
重新再看一遍python核心编程,把后面的习题都做一下.
- Python核心编程这本书的一些错误
<Python核心编程第二版>这本书比<Python基础教程第二版修订版>详细很多,丰富了很多细节,虽然它是一本经典的入门书,但我发现还是存在一些明显的错误.在面向对象编程这一 ...
- Python核心编程-描述符
python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...
- Python核心编程-闭包
百度搜了一下闭包的概念:简而言之,闭包的作用就是在外部函数执行完并返回后,闭包使得收机制不会收回函数所占用的资源,因为内部函数的执行需要依赖外函数中的变量.这是对闭包作用的非常直白的描述,不专业也不严 ...
- python核心编程第二版笔记
python核心编程第二版笔记由网友提供:open168 python核心编程--笔记(很详细,建议收藏) 解释器options:1.1 –d 提供调试输出1.2 –O 生成优化的字节码(生成 ...
- 学习《Python核心编程》做一下知识点提要,方便复习(一)
学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿p ...
- python核心编程--笔记
python核心编程--笔记 的解释器options: 1.1 –d 提供调试输出 1.2 –O 生成优化的字节码(生成.pyo文件) 1.3 –S 不导入site模块以在启动时查找pyt ...
- Python核心编程第二版(中文).pdf 目录整理
python核心编程目录 Chapter1:欢迎来到python世界!-页码:7 1.1什么是python 1.2起源 :罗萨姆1989底创建python 1.3特点 1.3.1高级 1.3.2面向 ...
随机推荐
- print控制台输出带颜色文字方法
在python开发的过程中,经常会遇到需要打印各种信息.海量的信息堆砌在控制台中,就会导致信息都混在一起,降低了重要信息的可读性.这时候,如果能给重要的信息加上字体颜色,那么就会更加方便用户阅读了. ...
- 纯CSS实现Tab切换标签效果代码
在线演示地址如下: http://demo.jb51.net/js/2015/css-tab-bq-style-cha-codes/ <!DOCTYPE html PUBLIC "-/ ...
- 尝试VS插件
从试用vs2013开始,ide变得越来越智能,但是vs2013总是会出一些莫名其妙的问题,导致编译不成功,不能跟vs2010共享等等.于是由再次回到vs2010. 现在vs2015的update1更新 ...
- Azure 8月众多新版本公布
Azure 8月新发布:IoT 中心S3 版,Azure 热/冷存储层,DocumentDB,SQL Server Stretch Database, MySQL 5.7, Cloud Foundry ...
- leetcode-pascal triangle I&&II
对于第2个pascal triangle,通过观察可以发现,其实只需要2个额外的变量来记录,于是就设了个tmp数组. 整体有点DP问题中的滚动数组的感觉. #include <vector> ...
- IEEP-网络规划
HCNP-R&S证书是公认人具备中小型企业网络构建和管理能力的专业人士 IEEP包含五个方面内容 1.网络规划与设计 2.网络实施与维护 3.网络排障 4.网络优化 5.网络割接 ...
- nutz 结合QueryResult,Record 自定义分页查询,不构建pojo 整合
public QueryResult getHistoryIncome(int d, int curPage) throws Exception { /**sql**/ Sql sql = Sqls. ...
- Echarts横坐标倾斜,顶部显示数字
最近项目使用到Echarts,所以学习了下 根据API,实现Echarts很简单,在这就不多说了,下面就说说项目中碰到的一些需求 1.由于横坐标很多,导致数据不能展示完整,所以需要设置横坐标样式倾斜展 ...
- { ($0, Resolver($0.box)) }(Promise<T>(.pending)):闭包的定义与执行合一
public class func pending() -> (promise: Promise<T>, resolver: Resolver<T>) { return ...
- [USACO15OPEN]haybales Trappe…
嘟嘟嘟 刚开始我以为如果这头牛撞开一个干草堆的话,获得的冲刺距离只有新增的部分,但实际上是加上原来的部分的. 暴力很好写,区间排完序后一次判断每一个区间是否能逃脱,复杂度O(n2). 优化想起来也不难 ...