基础 day14

 

 

day14笔记

  __init__.py 内的 __all__ 列表

  

  作用:

    用来记录此包中有哪些包或模块需要在from import *语句导入时被导入

  说明:

    __all__列表只在from xxx import *语句中起作用

 

包的相对导入

  是指包内模块的相互导入

 

  语法:

    from 相对路径包或模块 import 属性或模块

    

    from 相对路径包或模块 import *

  说明:

    包的相对导入不能用于import xxx 语句中

  相对路径:

    . 代表当前目录

    .. 代表上一级目录

    ... 代表上二级目录

    .... 以此类推

  : 相对导入时不能超出包的外部

 

 

包的加载路径:

  同模块的加载路径搜索

    1. 搜索当前路径

    2. 搜索sys.path给定的路径

 

 

 

 

day14笔记

  异常(基础) exception

 

  什么是错误

    错误是指由于逻辑或语法等导入一个程序无法正常执行的问题

  特点:

    有些错误是无法预知的

 

  什么是异常

    异常是程序出错时标识的一种状态

    当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态

  作用:

    用作信号,通知上层调用者有错误需要处理

 

try语句

  两种语法:

    try-except 语句

    try-finally 语句

 

try-except语句语法

    try:

        可能触发异常的语句

    except 错误类型1 [as 变量1]:

        异常处理语句1

    except 错误类型2 [as 变量2]:

        异常处理语句2

    except (错误类型3, 错误类型4) [as 变量3]:

        异常处理语句3

    ...

    except:

        异常处理语句other

    else:

        末发生异常语句

    finally:

         最终语句

  作用:

    偿式捕获异常,将程序转为正常状态并继续执行

 

 

 

练习:

  写一个函数:

    def get_score():

        ....

 

    此函数来获取用户输入的学生成绩信息(0~100的整数)

    如果用户输入出现异常则此函数返回0,否则返回用户输入的成绩

 

    score = get_score()

    print("您输入的成绩:", score)

   

 

 

try-finally 语句

  语法:

    try:

        可能触发异常的语句

    finally:

        一定要执行的最终语句

  说明:

    1. finally 子句不可以省略

    2. 一定不存在except子句

  作用:

    通常用try-finally语句来做触发异常时必须要处理的事情,无论异常是否发生,finally子句都会被执行

  :

    try-finally 语句不会改变程序的状态(正常/异常)状态

 

 

 

 

raise 语句

  作用:

    触发一个错误,让程序进入异常状态

  语法:

    raise 异常类型

    

    raise 异常对象

 

 

练习:

  写一个函数get_age() 用来获取一个人的年龄信息

 

  此函数规定用户只能输入1~140之间的整数。如果用户输入其它的数则直接触发 ValueError类型的错误!

 

  def get_age():

      ....

 

  try:

      age = get_age()

      print("用户输入的年龄是:", age)

  except ValueError as err:

      print("用户输入的不是1~140的整数!!,获取年龄失败")

 

 

 

assert 语句(断言语句)

  语法:

    assert 真值表达式, 错误数据(通常是字符串)

 

  作用:

    当真值表达式为False时,用错误数据创建一个 AssertionError 类型的错误,并进入异常状态

  等同于:

    if 真值表达式 == False:

        raise AssertionError(错误数据)

 

 

 

异常小结:

  语句:

    try-except

        捕获异常,偿试接收异常通知

    try-finally

        执行一定要执行的语句

    raise

        发送异常通知,将程序转为异常状态(进入异常流程)

    assert

        根据条件来触发AssertionError类型的异常

    with 语句(以后再学)

 

 

 

为什么要用异常处理机制

  在程序调用层数较深时,向主调函数传递错误信息需要层层return返回比较麻烦,所以用异常处理机制来解决此类问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值