常见的代码报错信息总结

Python一些常见的错误总结如下:

AttributeError: type object ‘Fruits‘ has no attribute ‘get_discount‘,属性错误

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”) 该错误将发生在类似如下代码中:

 if spam == 42 print(‘Hello!‘) 

2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”) = 是赋值操作符而 == 是等于比较操作。该错误发生在如下代码中:

if spam = 42: print(‘Hello!‘) 

3)错误的使用缩进量。(导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”) 记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。该错误发生在如下代码中:

print(‘Hello!‘) 
   print(‘Howdy!‘) 

或者:

if spam == 42: 
print(‘Hello!‘) 
print(‘Howdy!‘) 

或者:

  if spam == 42: 
print(‘Hello!‘) 

4)在 for 循环语句中忘记调用 len() (导致“TypeError: ‘list‘ object cannot be interpreted as an integer”) 通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。 该错误发生在如下代码中:

spam = [‘cat‘, ‘dog‘, ‘mouse‘] 
for i in range(spam): 
     print(spam[i]) 

5)尝试修改string的值(导致“TypeError: ‘str‘ object does not support item assignment”) string是一种不可变的数据类型,该错误发生在如下代码中:

spam = ‘I have a pet cat.‘ 
spam[13] = ‘r‘ print(spam) 

而你实际想要这样做:

spam = ‘I have a pet cat.‘ 
spam = spam[:13] + ‘r‘ + spam[14:] print(spam) 

6)尝试连接非字符串值与字符串(导致 “TypeError: Can‘t convert ‘int‘ object to str implicitly”) 该错误发生在如下代码中:

numEggs = 12 print(‘I have ‘ + numEggs + ‘ eggs.‘) 

而你实际想要这样做:

numEggs = 12 print(‘I have ‘ + str(numEggs) + ‘ eggs.‘) 

或者:

 numEggs = 12 print(‘I have %s eggs.‘ % (numEggs)) 

7)在字符串首尾忘记加引号(导致“SyntaxError: EOL while scanning string literal”) 该错误发生在如下代码中:

print(Hello!‘) 或者: print(‘Hello!) 

或者:

myName = ‘Al‘ print(‘My name is ‘ + myName + . How are you?‘) 

8)变量或者函数名拼写错误(导致“NameError: name ‘fooba‘ is not defined”) 该错误发生在如下代码中:

foobar = ‘Al‘ print(‘My name is ‘ + fooba)
 或者:
spam = ruond(4.2) 
或者: 
spam = Round(4.2) 

9)方法名拼写错误(导致 “AttributeError: ‘str‘ object has no attribute ‘lowerr‘”) 该错误发生在如下代码中:

spam = ‘THIS IS IN LOWERCASE.‘ 
spam = spam.lowerr() 

10)引用超过list最大索引(导致“IndexError: list index out of range”) 该错误发生在如下代码中:

spam = [‘cat‘, ‘dog‘, ‘mouse‘] 
print(spam[6]) 

11)使用不存在的字典键值(导致“KeyError:‘spam‘”) 该错误发生在如下代码中:

spam = {‘cat‘: ‘Zophie‘, ‘dog‘: ‘Basil‘, ‘mouse‘: ‘Whiskers‘}
print(‘The name of my pet zebra is ‘ + spam[‘zebra‘]) 

12)尝试使用Python关键字作为变量名(导致“SyntaxError:invalid syntax”) Python关键不能用作变量名,该错误发生在如下代码中:

class = ‘algebra‘

Python3的关键字有:and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield

13)在一个定义新变量中使用增值操作符(导致“NameError: name ‘foobar‘ is not defined”) 不要在声明变量时使用0或者空字符串作为初始值,这样使用自增操作符的一句spam += 1等于spam = spam + 1,这意味着spam需要指定一个有效的初始值。 该错误发生在如下代码中:

spam = 0 
spam += 42 
eggs += 42 

14)在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)(导致“UnboundLocalError: local variable ‘foobar‘ referenced before assignment”) 在函数中使用局部变来那个而同时又存在同名全局变量时是很复杂的,使用规则是:如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量。 这意味着你不能在定义它之前把它当全局变量在函数中使用。 该错误发生在如下代码中:

someVar = 42 
def myFunction(): 
   print(someVar) 
   someVar = 100 
   myFunction() 

15)尝试使用 range()创建整数列表(导致“TypeError: ‘range‘ object does not support item assignment”) 有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式。然而,你需要记住 range() 返回的是 “range object”,而不是实际的 list 值。 该错误发生在如下代码中:

spam = range(10) 
spam[4] = -1 

也许这才是你想做:

spam = list(range(10)) 
spam[4] = -1 

(注意:在 Python 2 中 spam = range(10) 是能行的,因为在 Python 2 中 range() 返回的是list值,但是在 Python 3 中就会产生以上错误)

16)错在 ++ 或者 -- 自增自减操作符。(导致“SyntaxError: invalid syntax”) 如果你习惯于例如 C++ , Java , PHP 等其他的语言,也许你会想要尝试使用 ++ 或者 -- 自增自减一个变量。在Python中是没有这样的操作符的。 该错误发生在如下代码中:

spam = 1
spam++ 

也许这才是你想做的:

spam = 1 
spam += 1 

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”) 该错误发生在如下代码中:

class Foo(): def myMethod(): 
       print(‘Hello!‘) a = Foo() a.myMethod() 

原文地址:https://www.cnblogs.com/anthony-wang0228/p/10623543.html

时间: 2024-10-10 02:09:41

常见的代码报错信息总结的相关文章

【php】开启与关闭调试与报错信息

开启调试与报错信息有利于编程人员掌握出错的位置,从而更快地解决问题. 关闭调试信息,则在你的网页发布时候,用户看不到你的php出现运行错误,当然也不会看到正确东西,仅仅会是一篇空白. 关键是在php安装之后,忘记开启调试与报错信息,在你编程的时候写错代码,却发现php没有报错,会产生一头雾水,此时你要关注你的php安装目录下的php.ini 如下图,找到display_errors那行,注意把Off,改成On,On的第一个字母注意大写.反之亦然. 同时,重启一下你的 Apache服务器. 此时你

动态添加Fragment的报错信息

05-29 21:23:28.406: E/AndroidRuntime(23636): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.***.Main}: java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent

SVN Cornerstone 报错信息 xcodeproj cannot be opened because the project file cannot be parsed.

svn点击update 之后,打开xcode工程文件,会出现  xxx..xcodeproj  cannot be opened becausethe project file cannot be parsed. 发现项目中代码全没了.只有一个空的工程名字,因为xcodeproj工程文件冲突了,然后就是svn强制给你更新了,内部的文件冲突了,你们改了同样的地方的一段代码,可能是你们只是多加了一个空格,或者你们都加了代码,或者都是把对方的删了,自己又加的.所有svn不知道你们谁的对,到底听你们谁的

20150430 调试分析之 根据内核报错信息PC指针分析错误

20150430 调试分析之 根据内核报错信息PC指针分析错误 2015-04-30 Lover雪儿 大家写驱动的时候不知道有没有发现,当我们驱动写错了,发生内核奔溃时,会打印一大堆的报错信息, 如果再返回我们的程序中一行一行代码的检查,既耗费时间,并且有些逻辑上的错误,我们是很难看的出来的, 那我们能不能再这一大堆的报错信息中发现问题的所在呢? 此处我们来模拟一个错误,还是沿用上一篇文章中的驱动代码err_led.c的驱动程序中的代码修改错误,当然大家用其他的驱动代码做测试也可以. 博客地址:

20150430 调试分析之 根据内核报错信息栈信息分析错误

20150430 调试分析之 根据内核报错信息栈信息分析错误 2015-04-30 Lover雪儿 还是沿用上篇文章的程序,继续研究内核报错信息 文章地址:http://www.cnblogs.com/lihaiyan/p/4470353.html 错误驱动源文件: 加载错误驱动程序 1 [email protected] /mnt/nfs/module/37_debug_err_led# echo 1 > /dev/errdule/37_debug_err_led# echo 1 > /de

项目中的报错信息,maven报错等的总结

Maven是一个自动化的构建和管理工具.在项目开发中,如果遇到了错误(红叉),一般有如下的解决方法: 1.java.lang.UnsatisfiedLinkError: E:\apache-tomcat-7.0.52\bin\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform 遇到以上的情况,http://www.apache.org/dist/tomcat/tomcat-connectors/native/ 到该

Struts1应用、实现简单计算器、使用DispatchAction、显示友好的报错信息、使用动态Form简化开发

实现简单的支持加.减.乘.除的计算器 复制一份Struts1Demo修改:Struts1Calc 方案1: Struts1Calc 创建ActionForm: CalcForm extends ActionForm, num1 num2,生成getter setter: 创建4个Action,在页面中,通过JavaScript控制提交到不同的Action Bean. AddAction: public class AddAction extends Action { @Override publ

detectron2安装出现Kernel not compiled with GPU support 报错信息

在安装使用detectron2的时候碰到Kernel not compiled with GPU support 问题,前后拖了好久都没解决,现总结一下以备以后查阅. 不想看心路历程的可以直接跳到最后一小节,哈哈哈. environment 因为我使用的是实验室的服务器,所以很多东西没法改,我的cuda环境如下: ubuntu nvcc默认版本是9.2 nvidia-smi版本又是10.0的 我之前一直没搞清楚这nvcc和nvidia-smi版本为什么可以不一样,想了解原因的可以看一下我之前的文

scss文件报错处理 (报错信息Invalid CSS after "v": expected 1 selector or at-rule, was 'var api = require)

error in ./src/assets/styles/app.scss Module build failed: @import "./reset.scss"; ^ Invalid CSS after "v": expected 1 selector or at-rule, was 'var api = require("' in /Users/aa/demo/new/src/assets/styles/app.scss (line 1, column