20160514Python

导入文件中的自定义函数

用 from abstest import my_abs 来导入my_abs()函数。

注意:abstest是文件名(不含.py扩展名)


如果还没想好怎么写函数代码,可以先放一个pass,让代码能运行起来


数据类型检查

语法:isinstance(object , classinfo)

如果参数object是calssinfo的实例,或者object是classinfo类的子类的一个实例,返回True。如果object不是一个给定类型的对象,则返回结果总是False。

如果classinfo不表示一个类(类型对象),那么它要么是一个类的元组,或者递归地包含这样的(由数据类型构成的)元组。其他的序列类型是不被允许的。

如果classinfo不是一种数据类型或者由数据类型构成的元组,将引发一个TypeError异常。

isinstance(object , class-or-type-or-tuple)

20160514Python_第1张图片
QQ截图20160514112921.png

Python中的异常处理

当程序出现错误后,程序的执行流程发生改变,程序的控制权转移到异常处理

Exception(例外)类是常用的异常类,该类包括StandardError(标准错误),StopIteration(停止迭代),GeneratorExit(编辑器退出),Warning等异常类。

  • StandardError

    • StandardError类是Python中的错误异常,如果程序上出现逻辑错误,将引发该异常。
    • StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOError,EOFError,ImportError等类,不需要导入exception模块。
  • StopIteration类判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。

  • GeneratorExit类是由Generator函数引发的异常,当调用close()时引发该异常。

  • Warning类表示程序中的代码引起的警告。

Python中的异常使用继承结构创建,可以在异常处理程序中捕获基类异常,也可以捕获各种子类异常,Python中使用try...except语句捕获异常,异常子句定义在try子句后面。


如何使用try...except?

try...except用于处理问题语句,捕获可能出现的异常。try子句中的代码块放置可能出现异常的语句,except子句中的代码块处理异常。

演示try...except语句捕获IOError异常:

try:
    file("hello.txt","r")      #如果文件不存在,引发异常
    print “读文件”
except IOError:
    print “文件不存在”      #捕获IO异常
except:
    print “程序异常”      #其它异常

Python与Java的异常处理模式相似,异常处理语句也可以嵌套,演示如下:

try:
    s = "hello"
    try:
        print s[0] + s[1]
        print s[0] - s[1]
    except TypeError:
        print "字符串不支持减法运算”
except:
    print "异常"
20160514Python_第2张图片
QQ截图20160514141230.png

如果外层try子句中的代码引发异常,程序将直接跳转到外层try对应的except子句,而内部的try子句将不会被执行。

字符串不支持减法运算


try...finally的使用方法

try...except后还可以添加一个finally子句。无论异常是否发生,finally子句都会被执行所有的finally子句通常用于关闭因异常而不能释放的系统资源。

try:
    f = open("hello.txt","r")
    try:
        print f.read(5)
    except:
        print "读文件异常”
    finally:
        print "释放资源”
        f.close()
except IOError:
    print "文件不存在”
st=>start:open("hello.txt","r")
op=>operation:f.read(5)

st->op

你可能感兴趣的:(20160514Python)