首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

10 行代码,9 行报错,8 个警告…一个都逃不掉!

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

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210528A0B2BF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券