【零基础Python专题(源码版)】篇章7·Bug
下面列举的Python的BUG基础知识(三引号成对儿注释的内容为一个小知识点),可以直接在Pycharm运行学习:
#Bug篇
#常见的异常类型:
#1.ZeroDivisionError 除(取)零异常
#2.IndexError 索引异常,越界
#3.KeyError 映射没有键
#4.NameError 未声明对象
#5.SyntaxError 语法错误
#6.ValueError 传入无效的参数
#常见的Bug类型
# SyntaxError---粗心导致的语法错误
'''# 常见的解决着手点:
# 1.是与否有缩进错误
# 2.漏写or错写冒号
# 3.字符串格式
# 4.没有定义使用的变量
# 5.运算符的规范使用,eg:==与=
#例 str与int类型不匹配
age=input("输入:")
if age>18:
pass'''
# IndexError---知识点不熟练,数据结构原理不清晰等导致的基础错误
'''#索引越界问题
lis=[1,2,3]
print(lis[4])
#列表追加问题
lis1=[1,2,3]
lis1=append(4,5,6) #append是列表的函数,应该用lis1.append();而且该函数一次只能追加一个值'''
# 逻辑思路不清晰导致的问题
# 这种问题最常见,一般解决着手点:
# 1.debug
# 2.print输出检查
# 3.通过注释检查代码
# 被动出错,使用try-except or try-except-else or try-except-else-finally
'''# 例1 try-except
try :
a=int(input("1:"))
b=int(input("2:"))
print(a/b)
except ValueError:
print("输入值有误")
except ZeroDivisionError:
print("输入分母不能为零")
# 例2 try-except-else
try :
a=int(input("1:"))
b=int(input("2:"))
except ValueError:
print("输入值有误")
except ZeroDivisionError:
print("输入分母不能为零")
else: print(a/b)
# 例3 try-except-else-finally
try :
a=int(input("1:"))
b=int(input("2:"))
except ValueError:
print("输入值有误")
except ZeroDivisionError:
print("输入分母不能为零")
else: print(a/b)
finally:print("这是一段有无异常都会被执行的代码")'''
#异常处理的模块-TraceBack
'''import traceback
try:
print(1/0)
except:
traceback.print_exc() #手动标记此时出问题的代码块'''