编程语言应用

首页 » 常识 » 诊断 » 10行代码,9行报错,8个警告一个都逃不
TUhjnbcbe - 2023/3/3 19:05:00

即便是不学编程或者初学编程的小白,对于报错“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)

更多问题请在评论区留言问我吧~

1
查看完整版本: 10行代码,9行报错,8个警告一个都逃不