昨日内容回顾

  • 重要内置函数

    map()映射 zip()拉链 filter()过滤 sorted()排序

  • 常见内置函数

    abs() round() bytes() int() bin() oct() hex() chr() ord() eval() exec()等等

  • 迭代器对象

    内置方法中含有双下iter方法的数据。包括字符串、列表、字典、元组、集合。

  • 可迭代对象

    对可迭代对象使用双下iter方法得到的结果为可迭代对象,可迭代对象可调用双下next方法。

  • for循环本质

    for循环本质是对可迭代对象调用双下iter及双下next方法,取值完成后捕获错误并处理。

  • 异常捕获基础

    异常分为语法错误及逻辑错误。

    报错的基本句型:异常位置、异常类型、相关提示。

今日内容概要

  • 异常类型
  • 异常处理基本结构
  • 异常处理其他关键字
  • 异常处理补充
  • 生成器相关

今日内容详细

异常类型

语法错误 SyntaxError

名称错误 NameError

索引错误 IndexError

键错误 KeyError

缩进错误 IndentationError

……

异常处理基本结构

使用try及except关键字,try调用内存监测下方子代码,except根据错误类型做相关操作。

try:
    """code to be executed"""
except """Error type""" as e:
	"""resolution to the error"""

异常处理其他关键字

通用错误类型关键字 Exception/BaseException

使用上述两个关键字可以对所有错误类型做统一操作。

正常运行对应处理关键字 else

若try下方子代码未出现错误,则运行else对应子代码。

最终处理关键字 finally

无论try监测的子代码是否报错,均会运行finally下方子代码。

异常处理补充

断言 assert

assert后跟预测的结果,若预测正确,则代码继续向下运行,若预测错误,则报错断言错误。

主动报错 raise

raise后跟错误类型及错误提示,可在满足条件时主动报错。

生成器相关

生成器本质是迭代器对象,与一般迭代器的对象的区别是,生成器是程序员自己定义的。

含有yield关键字的函数运行后函数转换为生成器。

生成器调用双下next方法后,函数停止在yield关键字处,再次调用从yield处继续向下运行。

yield关键字类似与return,后方可跟返回值。

yield冷门用法:在定义生成器时,使用yield赋值给形参,调用时配合迭代器对象的send方法将数据传给需要赋值的形参。

利用生成器知识模拟range方法

def my_range(start_num=0, end_num=None, step_num=1):
    if end_num:
        if start_num < end_num:
            while start_num < end_num:
                yield start_num
                start_num += step_num
        elif start_num == end_num or step_num == 0:
            yield start_num
        elif start_num > end_num and step_num > 0:
            yield quit()
        else:
            while start_num > end_num:
                yield start_num
                start_num += step_num
    else:
        end_num = start_num
        start_num = 0
        while start_num < end_num:
            yield start_num
            start_num += step_num

原文地址:http://www.cnblogs.com/akazukis/p/16800435.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性