温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python常见的BUG类型有哪些

发布时间:2022-01-28 13:52:52 来源:亿速云 阅读:197 作者:iii 栏目:开发技术

今天小编给大家分享一下Python常见的BUG类型有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

错误类型 1:语法错误

i = 1 

while True :

    i += 1

    if i == 100 :

        return

报错:

SyntaxError: 'return' outside function

从代码中不难看出这位小伙伴是想执行一个循环体,当 i 的值等于 100 时停止计算并返回,而 return 不能够再方法以外使用。

解决方法:

i = 1 

while True :

    i += 1

    if i == 100 :

        break

错误类型 2:类型错误

 name = '老王'

 age = 50

 print('我是' + name + ',年龄' + age)

报错:

TypeError: must be str, not int

从代码中可以看出该为小伙伴是想将名字和年龄做一个组合输出,但在进行 + 拼接时,必须使用字符串,而年龄却是 int 类型。

解决办法:将 int 类型数据转成字符串。

name = '老王'

age = 50

print('我是' + name + ',年龄' + str(age))

错误类型 3:语法错误

name = '老王'

if name = '老王':

    print('Hello')

报错:

SyntaxError: invalid syntax

此处看似是在判断 name 是否为'小王'如果是则输出  'Hello',但却忽略了 '=' 符号是赋值符,'==' 才是比较符。

解决方法:

name = '老王'

if name == '老王':

    print('Hello')

错误类型 4:缩进错误

  name = '老王'

  for index in range(10):

  if name == '老王': 

     print('Hello')

else: 

    print('No body')

报错:

IndentationError: unindent does not match any outer indentation level

该类型报错较为常见,也比较不应该,主要还是由于粗心大意而忽视了语法的缩进符。

解决方法:使用 4 个空格代表缩进,或摁 tab 实现自动缩进。

name = '老王'

for index in range(10):

  if name == '老王': 

    print('Hello')

  else: 

    print('No body')

错误类型 5:索引错误

 text = 'hello world'

 print(text[11])

报错: 

IndexError: string index out of range

该类型的错误为所需提取的字符串超出了范围,记住字符串下标是从 0 开始计数的,而不是从 1 开始,另外字符串内的空格也是计数的。

错误类型 6:值错误

text = 'Hello World'

result = text.index('你好')

print(result)

报错: 

ValueError: substring not found

该类型错误是用户想要在字符串中查找不存在的字符串,查找字符串时先确认原字符串是否有我们需要的子字符串。

错误类型 7:索引错误

list1 = ['迪迦','赛文','塞罗','艾斯']

print(list1[4])

报错:

IndexError: list index out of range

该用户是想取出列表中的最后一个位置的信息,但取值超出了列表范围或列表不存在,记住列表的下标也是从 0 开始计数的。

解决办法:

list1 = ['迪迦','赛文','塞罗','艾斯']

#方法一

print(list1[3])

#方法二

print(list1[-1])

错误类型 8:属性错误

tp1 = ('to', 'be', 'or', 'not', 'to', 'be')

tp1.remove('to')

报错:

AttributeError: 'tuple' object has no attribute 'remove'

可以看出用户是想将元组的 'to' 信息删除,然而却忽略了元组没有 remove 方法。

解决方法:将元组转换成列表后进行删除操作。

tp1 = ('to', 'be', 'or', 'not', 'to', 'be')

list1 = list(tp1)

list1.remove('to')

错误类型 9:键错误

 dic1 = {

    'name':'老王',

    'age':50,

    'friend':['孙子','孔子','老子','迪迦']

}

print(dic1['height'])

报错:

KeyError: 'height'

key 键错误:没有指定的键值 'height' ,从用户定义的字典不难看出里面并无 'height' 这个键,而用户却像从中取没有的值,不难免报错了。

错误类型 10:类型错误

dic1 = { 

    'name':'老王',

    'age':50,

    'friend':['孙子','孔子','老子','迪迦']

}

dic1.pop()

报错:

TypeError: pop expected at least 1 arguments, got 0

使用 pop() 方法时至少需要传入一个参数,但用户并没有进行传参操作。

以上就是“Python常见的BUG类型有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI