python学习记录day-11-bug的解决办法 AND 异常处理机制

 常见的bug类型

# 常见的bug类型
# 例1
# age=input('请输入你的年龄')
# if age>=18: # 程序出错,因为input函数输入的是str类型,18是整数类型,无法比较
# print('你已经成年了')
# 解决办法
age=input('请输入你的年龄')
if int(age)>=18: # 转为整数类型
print('你已经成年了')
# 例2
i=0
while i<10:
print(i)
i+=1
# bug常见类型
末尾冒号
缩进
英文符号
字符串和数字拼接错误
忘记定义变量
==是比较运算=是赋值

bug由来和分类

# bug由来和分类

索引越界


lst=[11,22,33,44]
# print(lst[4]) # list index out of range
print(lst[3])

append()方法使用不熟练


lst=[]
# lst=append('A','B','C')
lst.append('A')
lst.append('B')
lst.append('C')
print(lst)

思路不清

# 题目 豆瓣电影Top50排行,使用列表存储电影信息,要求输入演员名字显示出演了哪部电影
# 思路不清解决办法,使用print函数,使用#注释部分代码
'''
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: # 遍历列表得到{}
act_lst=item['actors']
for actor in act_lst: # 遍历每个{},moive是一个字典中的键
if name in actor:
print(name,'出演了:',item['title'])'''

python异常处理机制

# python异常处理机制

try-except


# 练习2,输入两个整数并进行除法运算
# 被动掉坑解决办法,使用异常处理机制try-except
'''a=int(input('输入第一个整数')) # 加入误输入q,程序报错
b=int(input('输入第二个整数'))
result=a/b
print('结果为:',result)'''
# 使用异常处理机制改写代码
try:
a = int(input('输入第一个整数')) # 加入误输入q,程序报错
b = int(input('输入第二个整数'))
result = a / b
print('结果为:', result)
except ZeroDivisionError:
print('除数不允许为0')
except ValueError:
print('只能输入数字')
print('程序结束')

try-except-else

# 异常处理机制 try无错执行else,有错执行except
try:
a = int(input('输入第一个整数'))
b = int(input('输入第二个整数'))
result = a/b
except BaseException as e: # 不知道会出现什么异常,输出异常情况
print('出错了',e)
else:
print('计算结果为:',result)

try-except-else-finally

# 异常处理机制,finally无论如何最终都会执行,能常用来释放try块中申请的资源
try:
a = int(input('输入第一个整数'))
b = int(input('输入第二个整数'))
result = a/b
except BaseException as e: # 不知道会出现什么异常,输出异常情况
print('出错了',e)
else:
print('计算结果为:',result)
finally:
print('谢谢您的使用')

python 常见的异常类型

# python 常见的异常类型

print(10/0)# zeroDivisionError 除(或取模)零

# IndexError序列中没有此索引
lst=[11,22,33]
print(lst[4])

# KeyError
dic={'name':'张三','age':40}
print(dic['gender']) # KeyError,没有这个值

# NameError
print(num) # 根本没有定义

# SyntaxError 语法错误
# int a=20 # 变量没有数据类型

# ValueError 传入无效参数
a=int('hello') # 字符串不能转变为整型

traceback模块

# 使用traceback模块打印异常信息
# print(10/0)
import traceback
try:
print('-------------')
print(10/0)
except:
traceback.print_exc()

代码调式

# 代码调式,设置断点,小虫子调试
i=1
while i<10:
print(i)
i+=1

学习链接

【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=105&share_source=copy_web&vd_source=5f93c948050b4284ccf31ae9244fad4c

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哈哈哈去3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值