第 10 章 Bug与程序调用

前言

本文介绍常见的Bug类型以及解决方法。


10.1Bug的类型及解决方法

Bug类型:粗心大意 、知识点不熟悉
、思路不清晰以及被动掉坑(代码无错误,由于用户输入错误或例外导致程序崩溃)。

解决方法:注释部分代码,利用print函数调试,进行断点调试,采用python自带的处理机制

10.2 try-except处理机制

1. 自上而下单个处理机制

try:
   a=int(input("请输入第一个整数:"))
   b=int(input("请输入第二个整数:"))
   print('结果为',a/b)
except ValueError:#排除数字类型错误
    print('对不起,您输入的不是整数类型')
    print('程序结束')
except ZeroDivisionError:#排出0不能作除数的错误
    print('对不起,0不能作除数')
    print('程序结束')

输出
请输入第一个整数: j
对不起,您输入的不是整数类型
程序结束

2. 排除所有错误的处理机制

try:
   a=int(input("请输入第一个整数:"))
   b=int(input("请输入第二个整数:"))
   print('结果为',a/b)
except :#排除数字类型错误
    print('输入有误')
    print('程序结束')

输出
请输入第一个整数:a
输入有误
程序结束

10.3 try-except-else处理机制

try:
    a = int(input("请输入第一个整数:"))
    b = int(input("请输入第二个整数:"))
except BaseException as e :#排除所有错误
    print('输入有误')
    print('程序结束')
else:
    print('结果为', a / b)

输出
请输入第一个整数:q
输入有误
程序结束

10.4 try-except-else-finally处理机制

try:
    a = int(input("请输入第一个整数:"))
    b = int(input("请输入第二个整数:"))
except BaseException as e:#排除所有错误
    print('输入有误')

else:
    print('结果为', a / b)
finally:
    print('however,程序结束')

输出
请输入第一个整数:12
请输入第二个整数:fg
输入有误
however,程序结束

10.5 Python中常见的Bug

  ZeroDivisionError--除数为0
  indexError--序号中无此索引
  keyError--字典中中无此索键值
  NameError--未申明对象
  SyntaxError--语法错误
  ValueError--传入无效值
  traceback模块打印异常信息
import traceback
try:
    print('_____________________________')
    print(1/0)
except:
    traceback.print_exc

输出:_____________________________


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值