python异常处理--try...except

发布时间:2017-11-11 18:44:45编辑:Run阅读(3776)

    在python中,用try来测试可能出现异常的语句,然后用except来处理可能出现的异常,try except的表达形式如下:

    try:

        语句

    except [exception,[data...]]:

        Do something

    except [exception,[data...]]:

        Do something

    except [exception,[data...]]:

        Do something


    意思是,尝试执行语句,如果出现某个异常则怎么做,因为同一个语句可能出现不同的异常,所以也会给出不同的解决方法,另外try还可以配合else,finally语句一起使用,不过这种情况比较少

    以常见的输入数据异常为例,编写一个testtryinput.py实验一下,代码如下

    # coding: utf-8
    __author__ = 'www.py3study.com'
    class tryinput(object):
        def __init__(self):
            self.len = 10
            self.numlist = self.createlist()
            self.getnum()
    
        def createlist(self):
            print(u"创建一个长度为{}的数字列表".format(self.len))
            numL = []
            while len(numL) < 10:
                n = input("请输入一个整数:")
                try:
                    num = int(n)
                except ValueError:
                    print(u"输入错误,要求输入一个整数")
                    continue
                numL.append(num)
                print(u"现在的列表为:")
                print(numL)
            return numL
    
        def getnum(self):
            print(u"当前列表为:")
            print(self.numlist)
            instr = None
            while instr != 'EXIT':
                print(u"输入EXIT退出程序")
                instr = input("输入列表下标[-10,9]:")
                try:
                    index = int(instr)
                    num = self.numlist[index]
                    print(u"列表中下标为{}的值为{}".format(index, num))
                except ValueError:
                    print(u"输入有误,列表下标是一个整数")
                    continue
                except IndexError:
                    print(u"下标太大,访问列表超出范围")
                    continue
    
    if __name__ == '__main__':
        tl = tryinput()

    应该看到的结果

    "C:\Program Files (x86)\python3.6\python.exe" D:/python3_study/test_tryinput.py

    创建一个长度为10的数字列表

    请输入一个整数:x

    输入错误,要求输入一个整数

    请输入一个整数:1

    现在的列表为:

    [1]

    请输入一个整数:2

    现在的列表为:

    [1, 2]

    请输入一个整数:3

    现在的列表为:

    [1, 2, 3]

    请输入一个整数:4

    现在的列表为:

    [1, 2, 3, 4]

    请输入一个整数:5

    现在的列表为:

    [1, 2, 3, 4, 5]

    请输入一个整数:6

    现在的列表为:

    [1, 2, 3, 4, 5, 6]

    请输入一个整数:7

    现在的列表为:

    [1, 2, 3, 4, 5, 6, 7]

    请输入一个整数:8

    现在的列表为:

    [1, 2, 3, 4, 5, 6, 7, 8]

    请输入一个整数:9

    现在的列表为:

    [1, 2, 3, 4, 5, 6, 7, 8, 9]

    请输入一个整数:0

    现在的列表为:

    [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

    当前列表为:

    [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

    输入EXIT退出程序

    输入列表下标[-10,9]:a

    输入有误,列表下标是一个整数

    输入EXIT退出程序

    输入列表下标[-10,9]:100

    下标太大,访问列表超出范围

    输入EXIT退出程序

    输入列表下标[-10,9]:8

    列表中下标为8的值为9

    输入EXIT退出程序

    输入列表下标[-10,9]:EXIT

    输入有误,列表下标是一个整数


    Process finished with exit code 0


    这个程序就是针对输入出现的异常和访问列表越界的异常给出了解决方案,在编程过程中总会遇上各种各样的异常,考虑周全一点,思维缜密一点,善用try一点,程序的健壮性就不止强一点点

关键字

上一篇: PyCharm汉化

下一篇: python导入模块--import--1