一、Bug的常见类型
1、粗心导致的语法错误SyntaxError
'''第一个'''
age=input('请输入你的年龄:')
#if age>=18: 这里input函数存储的是str类型,下面if判断句是int型,两者没法比较
#print('成年人犯错要付法律责任')
'''解决方法是将age变量通过int()方法转成整数型'''
'''第二个'''
while n<=10:
print(n) #这种运行程序只会进入无限死循环
'''必要要在print()下面加上n=n+1'''
for i in range(3):
username=input('您的用户名为:')
password=input('您的密码为:')
if username='admin' and password='123456789':
print('密码正确,稍后转入系统')
break
else:
print('密码错误,请重新输入')
else:
print('三次密码错误,账户被冻结十分钟')
'''if语句的中值比较问题得用==,而不是= '''
2、知识不熟练出现的Bug错误
'''第一个:列表索引问题'''
list=[10,11,12,13]
print(list(4))
IndexError: list index out of range #所查找的列表索引超出了范围
'''第二个:append()方法使用不熟练'''
list1=[]
list1.append('a','b','c')
print(list1)
TypeError: append() takes exactly one argument (3 given)
'''列表中的append()方法一次只能接收一个参数'''
3、思路不清晰导致的Bug错误
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: #遍历字典
act_lst=item['actors']
#print(act_lst)
for actor in act_lst:
if name in act_lst:
print(name+'出演了'+item['title'])
break
'''for movie in item: #遍历字典中的每一个键 遍历出来的结果是三个字典
print(movie)
print('---------------')'''
'''actors=movie['sctors']
if name in actors:
print(name+'出演了'+movie)
'''
print(item)
4、被动掉坑导致出现Bug
'''比如我给定这样几行代码'''
a=int(input('请输入一个整数'))
b=int(input('请输入另一个整数'))
c=a/b
print(c)
请输入一个整数q
ValueError: invalid literal for int() with base 10: 'q' #英文字母转不了十进制的数
请输入一个整数10
请输入另一个整数0
ZeroDivisionError: division by zero #除数不允许为0