JavaEE鸿蒙应用开发HTML&JS+前端Python+大数据开发人工智能开发电商视觉设计软件测试新媒体+短视频直播运营产品经理集成电路应用开发(含嵌入式)Linux云计算+运维开发C/C++拍摄剪辑+短视频制作PMP项目管理认证电商运营Go语言与区块链大数据PHP工程师Android+物联网iOS.NET

【python】初学者Python日常代码中的一些BUG类型

来源:黑马程序员

浏览20023人

2019.05.09

很多初学者,遇见bug的时候,有时候不知道怎么处理,以至于每次遇到相同类型的bug都要去问度娘,这样确实很麻烦,那么今天我就来跟大家分享一下简单常见的BUG类型及相应BUG的处理方法。
错误类型1:语法错误
while True :
    count += 1
    if count == 20 :
        return
报错:
SyntaxError: 'return' outside function
语法错误:return不能在方法以外使用
解决方法:将return放在方法体中


错误类型2:类型错误
name = '
小王'
age = 16
print('
我的名字是' + name + ',我的年龄是' + age)
报错:
TypeError: must be str, not int
类型错误:必须是一个字符串,不能是数字
解决方法:使用 + 拼接的时候,必须使用字符串,或者将数字转化成字符串


错误类型3:语法错误
name = '
小王'
if name = '
小王':
    print('Hello')
报错:
SyntaxError: invalid syntax
语法错误:非法的语法
解决方法:看报错信息在第几行,从这一行往上找错误


错误类型4:缩进错误
name = '
小王'
for index in range(10):
if name == '
小王':
    print('hello')
else:
    print('nothing')
报错:
IndentationError: unindent does not match any outer indentation level
缩进错误 : 未知缩进不匹配任何缩进等级
解决办法:tab自动缩进



错误类型5:索引错误
content = 'hello world'
print(content[21])
报错:
IndexError: string index out of range
索引错误:字符串超出了范围
解决办法:查看字符串的长度,索引要小于长度

错误类型6:值错误
content = 'hello world'
result = content.index('
你好')
print(result)
报错:
ValueError: substring not found
值错误:字符串未找到

错误类型7:索引错误
list1 = ['outMan','
小李子','诺兰','皮克斯']
print(list1[5])
报错:
IndexError: list index out of range
索引错误:列表索引超出了范围

错误类型8:属性错误
tp1 = ((),[],{},1,2,3,'a','b','c',3.24,True)
tp1.remove(1)
报错:
AttributeError: 'tuple' object has no attribute 'remove'
属性错误:元组对象没有属性'remove'


错误类型9:键错误
dic1 = {
    'name':'
张三',
    'age':17,
    'friend':['
李四','王五','赵六','冯琦']
}
print(dic1['fond'])
报错:
KeyError: 'fond'
key
键错误:没有指定的键值'fond'

错误类型10:类型错误
dic1 = {
    'name':'
张三',
    'age':17,
    'friend':['
李四','王五','赵六','冯琦']
}
dic1.pop()
报错:
TypeError: pop expected at least 1 arguments, got 0
类型错误:pop()方法希望得到至少一个参数,但是现在的参数为0


   
以上为初学者经常遇到的几种bug类型,其实好好琢磨下,根据错误的类型,然后再分析自己所写代码,对于初学者要经常练,这些BUG都会成为不足挂齿的难题!!!