17个新手常见的Python运行错误

2018-09-16

    

当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。

1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)

2)使用 = 而不是 ==(导致“SyntaxError: invalid syntax”)

= 是赋值操作符而 == 是等于比较操作。

3)错误的使用缩进量。(导致“IndentationError:unexpected indent”、“IndentationError:unindent does not match any outer indetation level”以及“IndentationError:expected an indented block”)

记住缩进增加只用在以:结束的语句之后,而之后必须恢复到之前的缩进格式。

4)在 for 循环语句中忘记调用 len() (导致“TypeError: 'list' object cannot be interpreted as an integer”)

通常你想要通过索引来迭代一个list或者string的元素,这需要调用 range() 函数。要记得返回len 值而不是返回这个列表。

5)尝试修改string的值(导致“TypeError: 'str' object does not support item assignment”)

6)尝试连接非字符串值与字符串(导致 “TypeError: Can't convert 'int' object to str implicitly”)

7)在字符串首尾忘记加引号(导致“SyntaxError: EOL while scanning string literal”)

8)变量或者函数名拼写错误(导致“NameError: name 'fooba' is not defined”)

9)方法名拼写错误(导致 “AttributeError: 'str' object has no attribute 'lowerr'”)

10)引用超过list最大索引(导致“IndexError: list index out of range”)

11)使用不存在的字典键值(导致“KeyError:‘spam’”)

12)尝试使用Python关键字作为变量名(导致“SyntaxError:invalid syntax”)

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需要指定一个有效的初始值。

14)在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)(导致“UnboundLocalError: local variable 'foobar' referenced before assignment”)

在函数中使用局部变来那个而同时又存在同名全局变量时是很复杂的,使用规则是:如果在函数中定义了任何东西,如果它只是在函数中使用那它就是局部的,反之就是全局变量。

这意味着你不能在定义它之前把它当全局变量在函数中使用。

15)尝试使用 range()创建整数列表(导致“TypeError: 'range' object does not support item assignment”)

有时你想要得到一个有序的整数列表,所以 range() 看上去是生成此列表的不错方式。然而,你需要记住 range() 返回的是 “range object”,而不是实际的 list 值。

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

16)不错在 ++ 或者 -- 自增自减操作符。(导致“SyntaxError: invalid syntax”)

如果你习惯于例如 C++ , Java , PHP 等其他的语言,也许你会想要尝试使用 ++ 或者 -- 自增自减一个变量。在Python中是没有这样的操作符的。

17)忘记为方法的第一个参数添加self参数(导致“TypeError: myMethod() takes no arguments (1 given)”)

相关文章

Python中 十大经典错误及解决办法

2018-09-26
1SyntaxError:invalid syntax错误示例1:1a = '12345'2for i in a3 print(i)错误示例2:1def sayhi()2 print('Hi')解决方法:在if/elif/else/while/for/...

Python3十大经典错误及解决办法

2018-09-25
引号没有成对出现 报错信息: 1SyntaxError:EOL while scanning string literal 错误示例: 1...圆括号没有成对出现 报错信息: 1SyntaxError:unexpected EOF while parsing 错误示例1: 1res...错误使用自操作运算符++或--等 报错信息: 1SyntaxError:invalid syntax 错误示例: 1v = 64 2v++...

7年Python老司机,血泪总结新手常见10大错误

2018-09-19
==导致“SyntaxError: invalid syntax”) = 是赋值操作符而 == 是等于比较操作.该错误发生在如下代码中:3错误的使用缩进量错误的...

新手必看,17个常见的Python运行时错误

2018-09-17
忘记在if,for,def,elif,else...使用= 而不是 == 也会导致“ SyntaxError: invalid syntax = 是赋值操作符而 == 是等于比较操作...错误的使用缩进量导致 IndentationError: unexpected indent ”、 IndentationError: u...

初学Python,我给你总结了常见的17个错误

2018-09-16
忘记在if,for,def,elif,else...使用= 而不是 == 也会导致“SyntaxError: invalid syntax = 是赋值操作符而 == 是等于比较操作...错误的使用缩进量 导致“IndentationError:unexpected indent”、“IndentationError:uni...

17个新手常见的Python运行错误

2018-09-16
忘记在 if , elif , else , for , while , class ...使用 = 而不是 ==(导致“SyntaxError: invalid syntax”) = 是赋值操作符而 == 是等于比较操作.错误的使用缩进量...

Python 常见的17个错误分析

2018-09-14
忘记在if,for,def,elif,else...使用= 而不是 == 也会导致“SyntaxError: invalid syntax = 是赋值操作符而 == 是等于比较操作.该错误发...错误的使用缩进量 导致“IndentationError:unexpected indent”、“IndentationError:uni...

Python新手常见错误汇总|附代码检查清单

2018-09-11
缺少分号:错误提示:SyntaxError: invalid syntax #语法错误:无效语法2.缩进不正确对于类定义、函数定义、流程控制语句、异常处理...

Python代码运行报错怎么办?!—常见的异常错误整理

2018-09-02
SyntaxError 类型的错误,例如SyntaxError: invalid syntax #无效的语法SyntaxError: invalid character in identifier #标识符中存在无效字...

17个新手常见的Python运行时错误

2018-08-30
忘记在if, elif, else, for, while, class, def 语句末尾添加冒号(:)...使用=号,而不是==号,从而导致 “SyntaxError: invalid syntax”错误 “=”是赋值语句...使用缩进量错误...

随机推荐

天台寺资料

2020-09-02
天台寺始建 藁城天台寺位于河北省石家庄市藁城区清流村东一华里处,307国道南侧,是省会石家庄周围规模较大的佛教道场之一....

C、Java:我看着你们,满怀敬意

2020-07-19
PHP、Java、Python、.NET、Ruby 等后端语言平起平坐.从那时起,“ 凡是能用 JavaScript 写的应用终将用 JavaScript 来写 ”开始...

【开学季】30款高质量的自学网站,总有一款适合你

2020-07-05
Oeasy http://oeasy.org/ Oeasy 是一个完全免费的综合视频教程网站,非常良心实用...考试酷 https://www.examcoo.com/index/ku 考试酷是一个永久免费的电子作业与在线考试系统云平台...Coursade http://www.coursade.com/ Coursade 是一个非常实用又好用的在线公开课搜索引擎...

如何把Python中的For循环替换为Map, Filter, 和Reduce

2017-12-08
Python 中的语法差异,然后给出如何转换普通 for 循环的示例.什么是 Map, Filter, 以及 Reduce?回顾之前写的代码,我发现在 95%...

5 个月策反,Kotlin 将取代 Java 成 Android 开发第一语言?

2017-12-01
日,一年一度开发者盛宴的 Google I/O 大会第一天,Google 正式宣布了 Kotlin 成为 Android 官方支持的语言.而如今短短 5 个月过去...

Python基础知识(十三)

2017-07-05
面向对象一、解决问题的方式面向过程(Process Oriented):根据业务逻辑从上到下写代码函数式:将某功能代码封装到函数中,日...

设计、组装、编程、调试、运行,32座微型“智能工厂”在他们手中活起来了!

2016-10-25
其次,在编程方面也对选手提出了更高要求,这与世赛编程模块越来越难的趋势是一致的.”加强对编程考核的重视,也是贴近当前产...

浅谈常见数据结构和算法的应用系列(一)

2016-08-13
线性数据结构、递归 和 排序算法 谈起.线性结构线性结构:是指数据排成像一条线一样的结构.每个元素结点最多对应一个前驱结点...

手把手教会你Java集合类泛类型

2015-09-02
图中虚线表示Collection是一个接口.▍图1. Java集合类继承图02什么是集合类泛类型?泛类型最初发表于JDK5.0,主要应用于声明和...

数据结构学习秘籍

2015-03-09
体会不到其中的妙处由于教材、教师等等各种因素影响,很多学生没有体会到数据结构处理数据的妙处,经常为学不会而焦头烂额,无...