即便是不学编程或者初学编程的小白,对于报错“error”“!!”都是司空见惯了,常见来自系统的错误提示音……
如果这一切都发生在我们学习Python的时候,该咋办?
秉持这个想法我去扇贝小组里找了编程大神黄老师!
面对着大神·黄的质疑”你有没有好好听课!“
花蛤自惭形秽QWQ……以下是来自黄大神的应对答疑。
TypeError:类型错误,对象用来表示值的类型非预期类型时发生的错误
1.不同类型变量之间的操作
错误案例:
print('abc' + 18)
报错提示:
TypeError: can only concatenate str (not "int") to str
原因分析:上面代码中 'abc' 是字符串,而 18是整型,强制将二者相加导致出错。
正确代码:
print('abc' + str(18))
2.函数传入参数类型/个数错误
错误案例:
t = [1, 2, 3]
for i in range(t):
print(i)
报错提示:
TypeError: 'list' object cannot be interpreted as an integer
原因分析:上面代码中 range()函数期望的入参是整型(integer),但却给的入参为列表(list),因此会报错。
正确代码:
t = 3
for i in range(t):
print(i)
3.非函数却以函数来调用
错误案例:
t = ('a', 'b', 'c')
t()
报错提示:
TypeError: 'tuple' object is not callable
原因分析:上面代码中 t 是元组,却加了 () 进行函数调用,导致报错。
正确代码:
t = ('a', 'b', 'c')
t
AttributeError:属性错误,特性引用和赋值失败时会引发属性错误
错误案例:
import random
print(random.Randint(1, 10))
报错提示:
AttributeError: module 'random' has no attribute 'Randint'
原因分析:random 模块没有 Randint方法(大小写)。
正确代码:
import random
print(random.randint(1, 10))
NameError:试图访问的变量名不存在
错误案例:
print(x)
报错提示:
NameError: name 'x' is not defined
原因分析:要先给变量赋值,然后才能使用它。
正确代码:
x = 1
print(x)
SyntaxError:语法错误,代码形式错误
错误案例:
def func()
pass
报错提示:
SyntaxError: invalid syntax
原因分析:def 后面忘记加冒号 ':'。
正确代码:
def func():
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: list index out of range
原因分析:索引 4超出列表索引范围。
正确代码:
l=[1,2,3,4]
print(l[1])
IndentationError:代码缩进错误
错误案例:
if True:
print(1)
报错提示:
IndentationError: expected an indented block
原因分析:缩进有误,Python 的缩进非常严格,行首多个空格,少个空格都会报错。
正确代码:
if True:
print(1)
更多问题请在评论区留言问我吧~
领取专属 10元无门槛券
私享最新 技术干货