即便是不学编程或者初学编程的小白,对于报错“error”“!!”都是司空见惯了,常见来自系统的错误提示音……
如果这一切都发生在我们学习Python的时候,该咋办?
秉持这个想法我去扇贝小组里找了编程大神*老师!
面对着大神·*的质疑”你有没有好好听课!“
花蛤自惭形秽QWQ……以下是来自*大神的应对答疑。
TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误
1.不同类型变量之间的操作
错误案例:
print(abc+18)
报错提示:
TypeError:canonlyconcatenatestr(notint)tostr
原因分析:上面代码中abc是字符串,而18是整型,强制将二者相加导致出错。
正确代码:
print(abc+str(18))
2.函数传入参数类型/个数错误
错误案例:
t=[1,2,3]foriinrange(t):print(i)
报错提示:
TypeError:listobjectcannotbeinterpretedasaninteger
原因分析:上面代码中range()函数期望的入参是整型(integer),但却给的入参为列表(list),因此会报错。
正确代码:
t=3foriinrange(t):print(i)
3.非函数却以函数来调用
错误案例:
t=(a,b,c)t()
报错提示:
TypeError:tupleobjectisnotcallable
原因分析:上面代码中t是元组,却加了()进行函数调用,导致报错。
正确代码:
t=(a,b,c)t
AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
错误案例:
importrandomprint(random.Randint(1,10))
报错提示:
AttributeError:modulerandomhasnoattributeRandint
原因分析:random模块没有Randint方法(大小写)。
正确代码:
importrandomprint(random.randint(1,10))
NameError:试图访问的变量名不存在
错误案例:
print(x)
报错提示:
NameError:namexisnotdefined
原因分析:要先给变量赋值,然后才能使用它。
正确代码:
x=1print(x)
SyntaxError:语法错误,代码形式错误
错误案例:
deffunc()pass
报错提示:
SyntaxError:invalidsyntax
原因分析:def后面忘记加冒号:。
正确代码:
deffunc():pass
KeyError:在读取字典中的key和value时,如果key不存在,就会触发KeyError错误
错误案例:
dic={a:1,b:2,c:3}print(dic[d])
报错提示:
KeyError:d
原因分析:dic字典没有键d。
正确代码:
dic={a:1,b:2,c:3}print(dic[a])
IndexError:索引错误,使用的索引不存在,常索引超出序列范围,序列中没有此索引(index)
错误案例:
l=[1,2,3,4]print(l[4])
报错提示:
IndexError:listindexoutofrange
原因分析:索引4超出列表索引范围。
正确代码:
l=[1,2,3,4]print(l[1])
IndentationError:代码缩进错误
错误案例:
ifTrue:print(1)
报错提示:
IndentationError:expectedanindentedblock
原因分析:缩进有误,Python的缩进非常严格,行首多个空格,少个空格都会报错。
正确代码:
ifTrue:
print(1)
更多问题请在评论区留言问我吧~