Python 学习第三弹:异常情况如何处理?

python 的处理错误的方式:

1> 断言

    assert condition
    相当于
    if not condition:
        crash program
    断言设置的目的就是因为与其让程序晚点崩溃,不如直接设置错误情况,让它直接崩溃
    >>> age = -1
    >>> assert 0 < age < 100
    AssertionError

2> 捕捉异常

    try:
        x = input()
        y = input()
        print(x/y)
    except ZeroDivisionError:
        print("Division by Zero")
    类似这样try/except形式就是来捕捉可能发生的异常错误,一旦出现ZeroDivisionError错误信息,则运行except ZeroDivisionError之后的代码

    通过多个except来捕捉不同错误信息
        def calc(expr):
            try:
                return eval(expr)
            except ZeroDivisionError:
                print("Divison by zero")
            except TypeError:
                print(‘This is not a number?‘)
    一个块捕捉多个错误信息
        def calc(expr):
            try:
                return eval(expr)
            except (ZeroDivisionError, TypeError):
                print("Input has some bugs")
    打印错误信息
        def calc(expr):
            try:
                return eval(expr)
            except (ZeroDivisionError, TypeError) as error:
                print(error)
    对于其他错误信息处理
        def calc(expr):
            try:
                return eval(expr)
            except ZeroDivisionError:
                print("Divison by zero")
            except:
                print(‘haha, something unknown happened!‘)
    else语句用于不出现错误信息
        def calc(expr):
            try:
                return eval(expr)
            except ZeroDivisionError:
                print("Divison by zero")
            else:
                print("Oh, it goes well!")

    此外还有finally语句,无论是否错误均会执行

    实际应用:(输入表达式直到可以计算)
    while True:
        try:
            print(eval(input()))
        except:
            print(‘Please reinput until you input the correct expression!‘)
        else:
            break;
        finally:
            print(‘I love the world whatever!‘) #即使else中break也会执行finally
时间: 2024-12-08 00:43:54

Python 学习第三弹:异常情况如何处理?的相关文章

python 学习笔记 三 字典

字典 Python的高效的key/value哈希表结构叫做"dict", dict的内容可以写成一系列的key:value对并放入{ }中, 相当于: dict = {key1:value1, key2:value2, ...}, 一个空的字典就是俩个大括号{ }. 下面是从一个空字典创建字典以及一些关键点: 数字, 字符串和元组可以作为字典的key, value可以是任何类型(包括字典). ## Can build up a dict by starting with the the

OpenCV for Python 学习笔记 三

给源图像增加边界 cv2.copyMakeBorder(src,top, bottom, left, right ,borderType,value) src:源图像 top,bottem,left,right: 分别表示四个方向上边界的长度 borderType: 边界的类型 有以下几种: BORDER_REFLICATE # 直接用边界的颜色填充, aaaaaa | abcdefg | gggg BORDER_REFLECT # 倒映,abcdefg | gfedcbamn | nmabcd

Python学习第三天--数据类型

数据类型: int()  整型 float()浮点型 e记法   (有点像数学中的科学计数法) 知识点概括: 字符相加,结果为和 >>> 520 + 5201040 2.字符串相加,结果为"拼接" >>> '520'+'1314''5201314' 3.逻辑运算,python认为True=1,False=0,(True和False第一个字母必须为大写) >>> True + True 2 >>> True - Tr

Python学习(三):入门篇:Python中怎么编写类

Python中怎么编写类 Last Edit 2013/5/2 先看一个例子: #person.py class person: """class to representaion a person""" def __init__(self,name,age): self.name=name if 0<age<=150: self.age=age else: print 'age is no valid!' def display(s

Python学习(三) 八大排序算法的实现(下)

本文Python实现了插入排序.基数排序.希尔排序.冒泡排序.高速排序.直接选择排序.堆排序.归并排序的后面四种. 上篇:Python学习(三) 八大排序算法的实现(上) 1.高速排序 描写叙述 通过一趟排序将要排序的数据切割成独立的两部分,当中一部分的全部数据都比另外一部分的全部数据都要小,然后再按此方法对这两部分数据分别进行高速排序,整个排序过程能够递归进行,以此达到整个数据变成有序序列. 1.先从数列中取出一个数作为基准数. 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全

python学习笔记三---segmaphore信号量学习

# *-* coding=gb2312 *-* ''' 信号量semaphore 是一个变量,控制着对公共资源或者临界区的访问.信号量维护着一个计数器,指定可同时访问资源或者进入临界区的线程数. 每次有一个线程获得信号量时,计数器-1.若计数器为0,其他线程就停止访问信号量,直到另一个线程释放信号量. ''' import threading import random import time class MyThread(threading.Thread): availableTables=[

Python学习(三)数据结构

Python 数据结构 本章介绍 Python 主要的 built-type,包括如下: Numeric types          int float Text Sequence Type       str Boolean              bool Sequence  Types        list tuple range Mapping Types          dict Set Types             set type() 函数 type(object)

Python学习_07_错误、异常

地毯式地过语法终于快要结束了... Python中的常见异常 1.NameError:尝试访问一个未初始化的变量 2. ZeroDivisionError:除数为0 3. SyntaxError:Python解释器语法错误 4. IndexError:请求的索引超出序列的范围 5. KeyError:请求一个不存在的字典关键字 6. IOError:输入.输出错误 7. AttributeError:尝试访问未知的对象属性 等,这些错误都是来自于Exception类,Exception类和Sys

Python学习笔记三)

Python 基础语法(四) --------------------------------------------接 Python 基础语法(三)-------------------------------------------- 十.Python标准库 Python标准库是随Pthon附带安装的,包含了大量极其有用的模块. 1. sys模块 sys模块包含系统对应的功能 sys.argv ---包含命令行参数,第一个参数是py的文件名 sys.platform ---返回平台类型 sy