【Bug】Bug的常见类型及异常处理机制

1、Bug常见类型

(1)粗细导致的语法错误

在这里插入图片描述
在这里插入图片描述

改正后的代码:

age = input('请输入年龄:')
if int(age) > 18:  # TypeError: '>' not supported between instances of 'str' and 'int'
    print('你已经成年了!')

i = 1  # i需要定义
while i < 10:
    print(i)  # 英文括号
    i += 1  # 结束循环的条件

在这里插入图片描述

(2)知识不熟练导致的错误

在这里插入图片描述
在这里插入图片描述

改正后的代码:

lst=[11,22,33,44]
# print(lst[4]) # 越界 IndexError: list index out of range
print('44的索引为:',lst.index(44))

lst1=[]
lst1.append('A') # 每次只可以在末尾添加一个元素
lst1.append('B')
lst1.append('C')
print(lst1)

lst2=['a','b','c']
lst1.extend(lst2)
print(lst1)

在这里插入图片描述

(3)思路不清楚导致的错误

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
改正后的代码:

lst=[{'rating':[9.7,50],'id':'1292052','type':['犯罪','剧情'],'title':'肖申克的救赎','actors':['蒂姆.罗宾斯','摩根.弗里曼']},
{'rating':[9.6,50],'id':'1291546','type':['剧情','爱情','同性'],'title':'霸王别姬','actors':['张国荣','张丰毅','巩俐','葛优']},
{'rating':[9.6,50],'id':'1296141','type':['剧情','犯罪','悬疑'],'title':'控方证人','actors':['泰降.鲍华','玛琳,黛德丽']}]

name=input('请输入你要查询的演员:')
for item in lst:
    # print(item['actors'])
    if name in item['actors']:
        print(name+'主演了:'+item['title'])

在这里插入图片描述

(4)被动掉坑导致的错误

在这里插入图片描述
在这里插入图片描述

改正后的代码:

print('--------被动掉坑导致的错误------------')
try:
    a=int(input('请输入一个整数:'))
    b=int(input('请输入另一个整数:'))
    c=a/b
    print(c)
except ValueError:
    print('不能输入字母哦!')
except ZeroDivisionError:
    print('0不能为除数哦!')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、常见的异常类型

在这里插入图片描述

3、异常处理机制

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

print('--------被动掉坑导致的错误------------')
try:
    a=int(input('请输入一个整数:'))
    b=int(input('请输入另一个整数:'))
    c=a/b
except BaseException as e:
    print('出错了!', e)
else:
    print('结果为:', c)
finally:
    print('程序结束!')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
traceback模块的使用
在这里插入图片描述

import  traceback
try:
    print('-----------------')
    print(1/0)
except:
    traceback.print_exc()

在这里插入图片描述

4、PyCharm的调试模式

在这里插入图片描述

5、总结

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Python提督道(Pythonic)地解决bug时,我们遵循一些原则和实践来提高代码的可读性、可维护性和可扩展性。 首先,我们应尽可能使用Python的内置函数和库来解决问题,而不是重复造轮子。Python提供了许多功能强大的内置函数和模块,如`os`、`sys`、`re`等,它们提供了许多用于处理文件、系统、正则表达式等常见任务的函数。同时,Python还提供了许多标准库,如`datetime`、`json`等,它们提供了处理日期时间、JSON等常见任务的函数和类。因此,在解决bug时,我们应首先查看Python官方文档,探索是否有现成的解决方案可用。 其次,我们应充分利用Python异常处理机制来捕获和处理bugPython提供了`try-except`结构,它能够捕获代码中可能出现的错误并进行相应的处理。在处理bug时,我们应该使用`try-except`块来尽量捕获并处理异常,以避免程序崩溃或产生不可预测的结果。同时,我们还可以使用`finally`关键字来确保无论是否发生异常,都能执行必要的清理工作。 此外,Python还支持面向对象编程(OOP),我们可以使用类和对象来组织和封装代码,以提高代码的可重用性和可维护性。在解决bug时,我们可以使用OOP的思想来设计和实现自定义的异常类、封装复杂逻辑的类等,以提高代码的可读性和扩展性。 最后,为了尽量避免和减少bug的产生,我们应遵循一些良好的编码风格和规范,如PEP 8,它提供了Python编码的指导原则。良好的编码风格和规范能够使我们的代码更加整洁、易读,并减少潜在的bug。同时,我们还可以使用一些静态代码分析工具来检测常见的错误和潜在的问题,如PyLint、Flake8等。 总之,使用Python提禅道bug意味着我们要充分利用Python的内置函数和模块、异常处理机制、面向对象编程等特性,同时遵循良好的编码风格和规范,以提高代码的质量和可维护性,从而高效地解决bug

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值