zoukankan      html  css  js  c++  java
  • Python核心编程第二版 第十章课后答案

    10.1 

    引发异常。以下的哪个因素会在程序执行时引发异常?注意这里我们问的并不是异常

    的原因。

    a) 用户;

    b) 解释器;

    c) 程序;

    d) 以上所有;

    e) 只有 b) 和 c);

    f) 只有 a) 和 c)

    f
    

     

    10-2.引发异常。参考上边问题的列表,哪些因素会在执行交互解释器时引发异常?

    f
    

      

    10-3.关键字。用来引发异常的关键字有哪些?

    raise
    

      

    10-4.关键字。try-except和try-finally有什么不同?

    try-except:当try代码块运行出错,except代码块才会被执行(匹配到相应异常时),处理完异常后try-except后的代码会继续往下执行;

    try-finally:不管try代码块是否出现异常,最终都会执行finally里的代码。如果出现异常,执行完finally代码块后,异常会继续往上层抛。

    i = 1
    try:
        num = 10%i
    except:
        print('except')
    
    try:
        num = 10%i
    finally:
        print('finally')
    输出:finally

    10-5.异常。下面这些交互解释器下的Python代码段分别会引发什么异常(参阅表10.2给出的内建异常清单):

    (a)>>>if 3 < 4 then:print '3 is less than 4!'

    (b)>>>aList = ['Hello','World','Anyone','Home?']

    >>>print 'the last string in aList is: ',aList[len(aList)]

    (c)>>>x

    (d)>>>x = 4 % 0

    (e)>>>import math

    >>>i = math.sqrt(-1)

    (a) SyntaxError: invalid syntax
    (b) IndexError: list index out of range
    (c) NameError: name 'x' is not defined
    (d) ZeroDivisionError: integer division or modulo by zero
    (e) ValueError: math domain error
    

      

    10-6.改进的open()。为内建的open()函数创建一个封装。使得成功打开文件后,返回文件句柄:若打开失败则返回给调用者None,而不是生成一个异常。这样你打开文件就不需要额外的异常处理语句。

    def try_open(filename,mode = 'r'):
        try:
            f = open(filename,mode)
        except IOError:
            return None
        return f      

    10-7.异常。下面两端Python伪代码a)和b)有什么区别?考虑语句A和B的上下文环境。(这么细致的区别要感谢Guido!)

    (a)try:

      statement_A

        except . . .:

        . . .

     else:

     statement_B

    (b) try:

      statement_A

      statement_B

     except . . .:

        . . .

    情况1: 如果statement_A执行出错,则(a)和(b)都不会执行statement_B;
    情况2: 如果statement_A执行正常,则(a)和(b)都会执行statement_B——但是,如果statement_B的执行也出错,(b)可以在except子句里捕获到异常并做处理,而(a)则只能将statement_B产生的异常抛给上层调用者。
    

      

  • 相关阅读:
    Python---HTML常用标签
    Python---进阶---Tkinter---game
    工程师的URL大全
    docker安装小笔记
    SQL server查询语句
    非常好用的sersync同步工具
    运维自动化的标准
    使用ansible实现轻量级的批量主机管理
    emos邮件系统的web密码修改方法
    Linux 之 rsyslog+mysql+LogAnalyzer 日志收集系统
  • 原文地址:https://www.cnblogs.com/jiaoyang77/p/7488960.html
Copyright © 2011-2022 走看看