python全栈核心提炼-第一章:python基础-异常

第一章:python基础主要有6个板块,都是学习python的重中之重!!需要反复学习,多敲代码:

  1. 数据类型
  2. 语法(语句)
  3. 函数
  4. 异常
  5. IO操作

先看本次内容的目录:

一:异常

  1. try
  2. traceback.print_exc()
  3. raise

二:调试


正文:

这次我们来梳理下python中的异常。还有学习编程必知必会的调试。

先来说异常

我们在写代码的过程中,难免会有一些bug。为了防止一些bug的出现导致软件崩溃或卡死,我们可以使用异常处理语句来使程序处理这种bug,继续执行下去。

有主流的3种方法:

一:try 语句

"""
异常进阶:
try
except BaseException as(可以通过BaseException类(万能异常类)输出错误的原因)
else
"""


try:
    a = int(input('请输入一个数字'))
    b = int(input('请输入第二个数字'))
    result = a/b
except BaseException as e:
    print('错误为', e)
else:
    print('a/b=', result)

当被除数输入0,结果为:

请输入一个数字12

请输入第二个数字0

错误为 division by zero

当输入非整数时,结果为:

请输入一个数字12.4

错误为 invalid literal for int() with base 10: '12.4'

当正常输入整数,可以执行除法时:

请输入一个数字12

请输入第二个数字4

a/b= 3.0

二:traceback.print_exc()

这是traceback模块的函数,利用关键字传参(file=),可以把异常内容记录到文件里。方便问题定位。上面的代码稍微修改就可以:

import traceback

try:
    a = int(input('请输入一个数字'))
    b = int(input('请输入第二个数字'))
    result = a/b
except Exception as e:
    traceback.print_exc(file=open('err.log', 'a'))  # 这里涉及到了随后要讲的IO操作,用追加的方式写日志到err.log里
else:
    print('a/b=', result)

当故意给第二个数字0时:

请输入一个数字12

请输入第二个数字0

就会把错误信息记录到err.log这个文件里:

python全栈核心提炼-第一章:python基础-异常

三: raise语句, 可以自定义错误类型。

下面例子中, 自定义了一个异常, 当发现年龄不在范围内,就会报错

score = int(input('请输入学生成绩:(0-100)'))
if score not in range(0, 101):
    raise Exception("输入异常")  # 手动抛出异常
else:
    print(f"分数为{score}")

最后, 我们梳理必知必会的调试

调试:英文叫debug。从字面意思看就是和bug对着干的。通过打断点,可以跟随程序的执行,以便于排查解决问题。

大体分三步走:

  1. 打断点
  2. 开始调试
  3. 最后三种快捷键(步过, 步入,步出)组合调试即可,不想调试也可以退出

步过:不进入函数往下执行

步入:进入函数

步出:跳出函数

python全栈核心提炼-第一章:python基础-异常


老规矩,上思维导图链接:

异常 - 幕布

调试 - 幕布

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毫无波澜的流浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值