• python核心编程2 第十章 练习


    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))
  • 相关阅读:
    C++ 字符数组函数与string函数
    std::vector介绍
    DirectX开发环境配置
    基于序列图像的三维体绘的视线投射算法
    关于灰度图和彩色图
    cin函数的一点理解
    两个getline 输入带空格的字符串
    彩色图转灰度图的原理和参考源码
    牛顿迭代法求一个数的平方根
    约瑟夫环问题
  • 原文地址:https://www.cnblogs.com/QQ269075164/p/10431335.html
Copyright © 2020-2023  润新知