date: 2020-04-01 14:25:00

updated: 2020-04-01 14:25:00

常见的Python运行时错误

摘自 菜鸟学Python 公众号

1. SyntaxError:invalid syntax

  1. 忘记在 if,for,def,elif,else,class 等声明末尾加冒号 :
  2. 使用= 而不是 ==

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

  3. 尝试使用Python关键字作为变量名
  4. 不存在 ++ 或者 -- 自增自减操作符

2. IndentationError:unexpected indent 或 IndentationError:unindent does not match any outer indetation level 或 IndentationError:expected an indented block

  1. 错误的使用缩进量

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

3. TypeError: 'list' object cannot be interpreted as an integer

  1. 在 for 循环语句中忘记调用 len()

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

4. TypeError: 'str' object does not support item assignment

  1. 尝试修改 string 的值,而 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)

5. TypeError: Can't convert 'int' object to str implicitly

  1. 尝试连接非字符串值与字符串,需通过 str(int) 来转化

6. SyntaxError: EOL while scanning string literal

  1. 在字符串首尾忘记加引号

7. NameError: name 'fooba' is not defined

  1. 变量或者函数名拼写错误
  2. 使用变量之前为声明改变量

    spam += 1等于spam = spam + 1,意味着 spam 需要有一个初始值

8. AttributeError: 'str' object has no attribute 'lowerr'

  1. 方法名拼写错误

9. IndexError: list index out of range

  1. 引用超过list最大索引

10. KeyError:'id'

  1. 使用不存在的字典键值

    在尝试获取字典键值的时候,先判断是否存在该键

    id = data["id"] if "id" in data.keys() else ""

11. UnboundLocalError: local variable 'foobar' referenced before assignment

  1. 在定义局部变量前在函数中使用局部变量(此时有与局部变量同名的全局变量存在)

12. TypeError: 'range' object does not support item assignment

  1. 尝试使用 range()创建整数列表

range() 返回的是 “range object”,而不是实际的 list 值

错误:
spam = range(10)
spam[4] = -1 正确:
spam = list(range(10))
spam[4] = -1

13. TypeError: myMethod() takes no arguments (1 given)

  1. 忘记为方法的第一个参数添加self参数
class Foo():
def myMethod():
print('Hello!')
a = Foo()
a.myMethod()

常见的Python运行时错误的更多相关文章

  1. 17个常见的Python运行时错误

    对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲.随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题.下面整理了常见的17个错误, ...

  2. [新手必看] 17个常见的Python运行时错误

    对于刚入门的Pythoner在学习过程中运行代码是或多或少会遇到一些错误,刚开始可能看起来比较费劲.随着代码量的积累,熟能生巧当遇到一些运行时错误时能够很快的定位问题原题.下面整理了常见的17个错误, ...

  3. 【转】常见的python机器学习工具包比较

    http://algosolo.com/ 分析对比了常见的python机器学习工具包,包括: scikit-learn mlpy Modular toolkit for Data Processing ...

  4. 列举一些常见的Python HTTP服务器

    要使 Python 写的程序能在 Web 上被访问,还需要搭建一个支持 Python 的 HTTP 服务器.下面列举一些常见的 Python HTTP 服务器,以及它们目前的大致发展情况,以便用户的对 ...

  5. [转]17个新手常见Python运行时错误

    原址:http://www.oschina.net/question/89964_62779?p=1 当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的 ...

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

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  7. python--17个新手常见Python运行时错误

    当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂.这里列出了常见的的一些让你程序 crash 的运行时错误. 1)忘记在 if , elif , else , for , ...

  8. 【转载】17个新手常见Python运行时错误

    转自:http://www.cnblogs.com/smile-ls/archive/2013/05/20/3088393.html 当初学 Python 时,想要弄懂 Python 的错误信息的含义 ...

  9. python的Error集,17个新手常见Python运行时错误

    python及相关工具安装Error集 . 如果升级python版本中出现error .so.1.0: cannot open shared object file: No such file or ...

随机推荐

  1. MySql基础_DDL_DML_DQL(资料一)

    今日内容 数据库的基本概念 MySQL数据库软件 安装 卸载 配置 SQL 数据库的基本概念 1. 数据库的英文单词: DataBase 简称 : DB 2. 什么数据库? * 用于存储和管理数据的仓 ...

  2. 我告诉你一个 AtomicInteger 的惊天大秘密

    i++ 不是线程安全的操作,因为它不是一个原子性操作. 那么,如果我想要达到类似 i++ 的这种效果,我应该使用哪些集合或者说工具类呢? 在 JDK1.5 之前,为了确保在多线程下对某基本数据类型或者 ...

  3. oh-my-zsh超级终端

    _ _ ___ | |__ _ __ ___ _ _ _______| |__ / _ \| '_ \ _____| '_ ` _ \| | | |____|_ / __| '_ \ | (_) | ...

  4. JVM的整体结构

    整个jvm的运行流程图如上所示,首先需要进行加载class文件,然后使用类加载子系统将class翻译解析导入内存,在内存中分别导入到对应的运行时数据区,然后执行引擎开始执行,对于需要的数据在对应的区域 ...

  5. pytest封神之路第零步 快速入门

    背景:本文是在系列第五篇发表后的补充篇章,第一篇介绍了tep,可能对不熟悉pytest的朋友不够友好,特意补充入门篇,帮大家快速了解如何动手写pytest.如果你是从这篇文章第一次阅读,那么请忽略以上 ...

  6. android开发之意图

    intent 全局变量传值(程序关闭时存储值消失) intent普通传值 intent传值 intent不能序列化传值 intent回传

  7. Java基于POI实现excel任意多级联动下拉列表——支持从数据库查询出多级数据后直接生成【附源码】

     Excel相关知识点 (1)名称管理器--Name Manager [CoderBaby]首先需要创建多个名称(包含key及value),作为下拉列表的数据源,后续通过名称引用.可通过菜单:&quo ...

  8. VS2013 c++ 生成和调用DLL动态链接库(.def 方法已验证OK)

    转载:https://blog.csdn.net/zhunianguo/article/details/52294339 .def 方法 创建动态库方法: 创建动态库是生成 .dll .lib 两个个 ...

  9. CF877E Danil and a Part-time Job

    题目大意: link 有一棵 n 个点的树,根结点为 1 号点,每个点的权值都是 1 或 0 共有 m 次操作,操作分为两种 get 询问一个点 x 的子树里有多少个 1 pow 将一个点 x 的子树 ...

  10. ECMASctipt6总结

    1.let 变量声明以及特性 声明变量 let a; let b, c, d; let e = 1; let f = 2, g = 3; 特性 1.不能重复声明 2.块级作用域  只在块级作用域有效 ...