【python经验总结】我与bug的那些日子

简介: 粗心导致语法错误

一、常见类型

(一)粗心导致语法错误

例如:

  1. 漏了末尾冒号;
  2. 缩进错误;
  3. 英文符号错用为中文符号;
  4. 字符串拼接时,把字符串、数字类型拼接到一起;
  5. 没有定义变量;
  6. == 错用成 =。

(二)知识点不熟练

浅浅的举两个例子吧,毕竟python的语法有那么多:

  1. 索引越界;
  2. append()不按照规定使用。

(三)思路不清晰

有很多看似很牛的项目,只用一个文件,几百行代码就能搞定,堪称高效。但如果你在里面好好的逛了一圈之后就一定会惊呼:“注释都救不了他了!”

(四)被动掉坑

代码逻辑没有错误,只因用户操作不当或意外情况导致程序崩溃。

解决方案:异常处置机制(出现异常及时捕获,内部消化,确保程序运行)

1、基础形式

try:
  ......
  ......
  ......  # 可能出现异常的代码
except xxx:  # 填入可能会报错问题。若无法预知,可以直接使用 excpet:
  ......
  ......
  ......  # 报错后执行的代码

2、拓展模式

try-except-else

若try块中没有抛出异常,则执行else块;若抛出异常,则执行except。

举个整数相除的例子:

try:
    a = int(input('请输入一个整数:'))
    b = int(input('请输入一个整数:'))
    c = a / b
except BaseException as e:
    print('有错误', e)
else:
    print(c)

try-except-else-finally

若try块中没有抛出异常,则执行else块;若抛出异常,则执行except;无论是否有异常,finally都会执行。

用finally优化一下刚才的程序:

try:
    a = int(input('请输入一个整数:'))
    b = int(input('请输入一个整数:'))
    c = a / b
except BaseException as m:
    print('有错误', m)
else:
    print(c)
finally:
    print('程序执行完毕!')

二、常见异常类型

image.png

三、Traceback模块的使用

对比起前两个程序,使用Traceback模块明显要

import traceback
try:
    print('----------------------------')
    print(10/0)  # 运行后会报错的
except:
    traceback.print_exc()

相关文章
|
7月前
|
数据采集 编解码 JSON
【Python】bug汇总
【Python】bug汇总
165 0
|
21天前
|
Python
0.1+0.2≠0.3,揭秘Python自带的Bug
0.1+0.2≠0.3,揭秘Python自带的Bug
129 0
0.1+0.2≠0.3,揭秘Python自带的Bug
|
6月前
|
Python
python 自带 re bug 推荐使用 regex
python 自带 re bug 推荐使用 regex
34 0
|
8月前
|
Cloud Native Go 开发者
那些年,我们一起追过的Python BUG
那些年,我们一起追过的Python BUG
26 0
|
9月前
|
人工智能 IDE 开发工具
走近Python编程的“BUG”世界
走近Python编程的“BUG”世界
44 0
|
9月前
|
Python
Python Bug分类,及异常处理
Python Bug分类,及异常处理
45 0
|
12月前
|
索引 Python
python基础之字符串、函数、BUG和异常类型介绍及类和对象详细笔记
python基础之字符串、函数、BUG和异常类型介绍及类和对象详细笔记
113 0
|
缓存 Java Python
惊呆了,我的 Python 代码里面出现了薛定谔的 Bug
惊呆了,我的 Python 代码里面出现了薛定谔的 Bug
73 0
|
Python
一个python小测试引发的思考---python-list尽可能少用一些,程序复杂的话,可能出bug
一个python小测试引发的思考---python-list尽可能少用一些,程序复杂的话,可能出bug
116 0
|
小程序 C# Python
【优化】C#小程序集成实现python定时段批量下载电子邮箱附件的bug排除
【优化】C#小程序集成实现python定时段批量下载电子邮箱附件的bug排除
99 0