097_Bug_粗心导致的错误
"""
课程视频:097_Bug的常见类型_粗心导致的错误
学习时间:2022/4/14 21:01
"""
age = input('请输入你的年龄:') # input输入的是str,应该转为int
# age = int(input('请输入你的年龄:'))
print(type(age))
if age >= 18:
print('成年人,做事要负法律责任了')
# i= 1
while i < 10: # 没有定义变量i
print(i)
# i+=1
'''
粗心导致的常见错误
1.漏了:
2.缩进
3.英文符号写成中文符号,()() ''’‘ : :
4.拼接不同类型的数据类型
5.未定义变量
6.比较运算符==和赋值运算符=混用
'''
098_Bug_知识点不数量导致的错误
"""
课程视频:098_Bug的常见类型_知识点不数量导致的错误
学习时间:2022/4/14 21:14
"""
lst = [11, 22, 33, 44] # 索引越界,列表的索引从0开始
# print(lst[4])
print(lst[3])
lst = []
# lst = append('A', 'B', 'C') # append使用错误
# lst.append('A', 'B', 'C') # append每次只能添加一个元素
lst.append('A')
lst.append('C')
lst.append('B')
print(lst)
099_Bug_思路不清导致的问题
"""
课程视频:099_Bug的常见类型_思路不清导致的问题
学习时间:2022/4/14 21:24
"""
# 题目:使用列表电影信息,要求输入名字在屏幕上显示XXX出演了哪部电影
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: # 遍历列表--->{},得到的item是一个个字典
# for movie in item: # 遍历字典,得到的movie是一个字典中的key
act_lst = item['actors'] # 根据key在字典中取值
for actors in act_lst: # 根据键actors取出演员列表
if name in actors: # 判断name是否在列表中存在
print(name, '出演了', item['title']) # 根据键title取出电影名称
'''
思路不清导致的问题解决方案
1.使用print()函数逐步输出
2.使用“#”暂时注释掉有问题的部分代码
3.一步一步调试
'''
100_Bug_被动掉坑_try_except
"""
课程视频:100_Bug的常见类型_被动掉坑_try-except
学习时间:2022/4/14 22:15
"""
# try-except机制
try: # 代码可能出现问题,可以先放在try当中
num1 = int(input('请输入第一个整数:'))
num2 = int(input('请输入第二个整数:'))
result = num1 / num2
print('结果为:', result)
except ZeroDivisionError: # ZeroDivisionError除数为0时出现的异常代码
print('除数不允许为0')
except ValueError: # ValueError输入非数字时出现的异常代码
print('只能输入整数')
print('程序结束')
'''
捕获异常的顺序先子类后父类(从小到大)
为了避免遗漏可能出现的异常,可以在最后增加BaseException
'''
101_try-except与try-except-else-finally
"""
课程视频:101_try-except结构与try-except-else-finally结构
学习时间:2022/4/14 23:12
"""
# try块中没有异常,则执行else块,出现异常,则执行except块
# finally块,无论是否出现异常,都会被执行,常用来释放try块中申请的资源
try:
num1 = int(input('请输入第一个整数:'))
num2 = int(input('请输入第二个整数:'))
result = num1 / num2
except BaseException as e:
print('出错了', e)
else:
print('计算结果为:', result)
finally:
print('谢谢你的使用')
102_Python中常见的异常类型
"""
课程视频:102_Python中常见的异常类型
学习时间:2022/4/14 23:28
"""
# print(10 / 0) # ZeroDivisionError 除数为0
lst = [11, 22, 33, 44]
# print(lst[4]) # IndexError 序列中没有该索引
dic = {'name': '张三', 'age': 20}
# print(dic['gender']) # KeyError 映射中没有这个键
# print(name) # NameError 未申明/初始化对象(没有属性)
# int a = 20 # SyntaxError Python语法错误
# a = int('hello') # ValueError 传入无效参数
103_traceback模块的使用
"""
课程视频:103_traceback模块的使用
学习时间:2022/4/14 23:44
"""
# 使用traceback模块打印异常信息
import traceback
try:
print('-----------')
print(10 / 0)
except:
traceback.print_exc()
104_Pycharm的程序调试
"""
课程视频:104_Pycharm的程序调试
学习时间:2022/4/14 23:52
"""
i = 1
while i < 10:
print(i)
i += 1
知识点总结