2022.11.9
1.bug的由来及分类——异常处理机制
# bug的由来及分类
'''①粗心导致的语法错误'''
age=input('请输入您的年龄')
print(type(age))
if int(age)>=18:
print('成年人')
i=0
while i <10:
print(i)
i+=1
'''②知识点不熟练导致的错误'''
lst=[11,22,33,44]
print(lst[3])
lst=[]
lst.append('A')
lst.append('B')
lst.append('C')
print(lst)
'''③思路不清导致的问题
print()、注释# '''
lst=[{'rating':[9.7,2062397],'id':'1292052','type':['犯罪','剧情'],'title':'肖申克的救赎','actors':['蒂姆·罗宾斯','摩根·弗里曼']},
{'rating':[9.6,1528760],'id':'1291546','type':['剧情','爱情','同性'],'title':'霸王别姬','actors':['张国荣','张丰毅','巩俐','葛优']},
{'rating':[9.5,1559181],'id':'1292720','type':['剧情','爱情'],'title':'阿甘正传','actors':['汤姆·汉克斯','罗宾·怀特']}
]
name=input('请输入你要查询的演员:')
for item in lst: # 遍历列表 --> {} item是一个又一个的字典
act_lst=item['actors']
for actor in act_lst:
if name in actor:
print(name,'出演了',item['title'])
'''④被动掉坑---异常处理机制'''
'''try except'''
try:
a=int(input('请输入第一个整数'))
b=int(input('请输入第二个整数'))
result=a/b
print('结果为:',result)
except ZeroDivisionError:
print('对不起,除数不允许为0')
except ValueError:
print('只能输入数字串')
print('程序结束')
'''try except else'''
try:
a=int(input('请输入第一个整数'))
b=int(input('请输入第二个整数'))
result=a/b
except BaseException as e: # BaseException--将所有可能出现的情况都进行捕获,给它起了一个别名e
print('出错了',e)
else:
print('计算结果为:', result)
'''try except else finally'''
try:
a=int(input('请输入第一个整数'))
b=int(input('请输入第二个整数'))
result=a/b
except BaseException as e: # BaseException--将所有可能出现的情况都进行捕获,给它起了一个别名e
print('出错了',e)
else:
print('计算结果为:', result)
finally:
print('谢谢您的使用')
2.python中常见的异常类型
# 1.python中常见的异常类型
# ①数学运算异常
# print(10/0) # ZeroDivisionError
lst=[11,22,33,44]
# print(lst[4]) # IndexError 索引从0开始的
dic={'name':'张三','age':20}
# rint(dic['gender']) # KeyError
# print(num) # NameError
# int a=20 # SyntaxError 变量没有数据类型 不承认这种写法
# a=int('hello') # ValueError
3.python的异常处理机制
# 2.python的异常处理机制
# print(10/0)
import traceback
try:
print('---------------------------------')
print(1/0)
except:
traceback.print_exc() # 调用traceback这个模块
# 将异常信息存到日志文件中
4.pycharm的调试模式:断点、进入调试视图