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面向 ...
随机推荐
- vue+rest-framework前后端分离整合
一.vue部分 二.django路由配置 (1)项目urls.py修改如下: from django.conf.urls import url, include urlpatterns = [ # p ...
- H5分享到微信好友朋友圈QQ好友QQ空间微博二维码
这是分享按钮: <button onclick="call()">通用分享</button> <button onclick="call(' ...
- 关于maven包的引入net.sf.json的问题
最开始通过在pom.xml文件中加入 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId& ...
- python 后台服务
centos 6x #!/bin/sh # chkconfig: 123456 90 10 # TTS Server for Speech Synthesis # workdir=/etc/speec ...
- sql server 某列去重
例如:某个表中,插入了两条除id外其他字段都一样的数据,但是查询的时候只想查到一条. select * from 表名 where 主键 in ( select max(主键) from 表名 gro ...
- MyISAM引擎表出现“Error 'Incorrect key file for table”
mysql主从复制中的从库突然出现了警报,sql_thread停止了,show slave status\G;查看 mysql> show slave status\G ; . row **** ...
- Nginx AWS ELB 域名解析后端502问题
转载:http://liyangliang.me/posts/2016/04/nginx-aws-elb-name-resolution/
- HDU2054:A == B ?
A == B ? Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 第一次Scrum冲刺(云医院)
一.小组第一次冲刺任务 1.小故事 小故事1 有一天,A牙齿突然开始痛,想着去医院看看,但是去了医院发现排队挂号的人很多,不知道什么时候才能轮到B.于是A想着能不能提前预约,免去排队的时间.正好云医院 ...
- OC block声明和使用
#import "Button.h" typedef int (^MySum) (int, int); void test() { // 定义了一个block,这个block返回值 ...