0
点赞
收藏
分享

微信扫一扫

Chap 11 全民来找茬

心如止水_c736 2022-04-15 阅读 49
python

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


 知识点总结

 

举报

相关推荐

0 条评论