想学Python的工程师学习之Bug

# 项目名称:Bug的由来
# 程序实现目的:
# 开发时间: 2020/12/8 14:23

# Bug的由来与分类
# 语法错误 SyntaxError
# age=input('请输入你的年龄')
# print(type(age))
# if int(age)>=18: # 注意比较间的数据类型
#     print('成年人')
# 1、漏了末尾的冒号
# 2、缩进错误
# 3、把英文写成中文
# 4、字符串拼接的时候把字符串和数字拼在一起
# 5、没有定义变量
# 6、==比较运算符和=赋值运算符混用

# 索引越界问题 IndexError
lst=[11,22,33,44]
print(lst[3])

# append()方法使用不熟练
lst=[]
# lst=append('A','B') # append只能添加一个元素
lst.append('A')
print(lst)

# 思路不清导致的问题
# 1、使用print()函数
# 2、使用#暂时注释部分代码
# 题目要求:豆瓣电影Top250 排行榜,使用列表存储电影信息
# 要求输入名字在屏幕上显示xxx出演了哪部电影
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:
#     for movie in item:
#         actors=movie['actors']
#         if name in actors:
#             print(name,'出演了',movie)
# 改正完毕版本
# name=input('请输入你要查询的演员:')
# for item in lst: # 遍历列表-->{} item是一个又一个的字典
#     act_lst=item['actors'] # 得到演员的列表
    # for actor in act_lst: # 将演员赋值给actor
    # 1、方法1
    #     if name in actor: # 分别判断是否包括演员的字
    #         print(name,'出演了',item['title'])
    # for actor in act_lst: # 将演员赋值给actor
    # 2、方法2
    # if name in act_lst: # 分别判断是否包括演员的字
    #     print(name,'出演了',item['title'])

    # for movie in item: # 遍历字典,得到movie是字典中的键(key)
    #     print(movie)

        # actors=movie['actors']
        # if name in actors:
        #     print(name,'出演了',movie)

# 被动掉坑:程序代码逻辑没错,因用户错误操作或者一些例外情况而导致的程序崩溃
# 解决方案:Python提供异常处理机制,可以在异常出现时即时捕获,然后内部消化,让程序继续运行
# 题目要求:输入两个整数并进行除法运算
# try: # 可能会出异常的代码
#     a = int(input('请输入第一个整数:'))  # 输入字母或者字母为0,会报错
#     b = int(input('请输入第二个整数:'))
#     result = a / b
#     print('结果为:',result)
# except ZeroDivisionError: # 异常类型
#     print('除数不能为0')
# except ValueError:
#     print('只能输入数字串')
# print('程序结束!')

try:  # 可能会出异常的代码
    a = int(input('请输入第一个整数:'))  # 输入字母或者字母为0,会报错
    b = int(input('请输入第二个整数:'))
    result = a / b
except BaseException as e:  # 异常类型
    print('出错了',e)
else:
    print('计算结果为:',result)
finally:  # 无论是否产生异常,都会被执行的代码
    print('我来了!!!')
print('程序结束!')

# 异常总结
# 1、ZeroDivisionError除数为0
# 2、IndexError序列中没有此索引(index)
# 3、KeyError映射中每有这个键
# 4、NameError未声明、初始化对象(没有属性)
# 5、SyntaxError Python中语法错误
# 6、ValueError传入无效的参数

# 异常处理的模块
import traceback
try:
    print('---------------')
    print(1/0)
except:
    traceback.print_exc()

# PyCharn开发环境下的调试
# 1、设置断点
# 2、进入调试视图(快捷键shift+F9)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值