Python常见报错解决方案总结(新手拯救指南)

目录
  • 前言
  • 01缩进错误(IndentationError)
  • 02Tab 和空格混用(TabError)
  • 03语法错误(SyntaxError)
  • 04变量名错误(NameErro)
  • 05索引错误(IndexError)
  • 06键错误(KeyError)
  • 07类型错误(TypeError)
  • 08属性错误(AttributeError)
  • 总结

前言

如果说写代码最害怕什么,那无疑是Bug。而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向。今天,我们就做了一期Python常见报错的分享,拯救你的代码!

01缩进错误(IndentationError)

在Python中,所有代码都是通过正确的空格排列的。所以,无论是多出来空格,还是缺少空格,整个代码都不会运行,并且仅返回一个错误函数。

Python代码遵循PEP8空白规范,每一级缩进使用4个空格。

错误示例

a=1
b=2
if a<b:
print a

修正

a=1
b=2
if a<b:
    print a

02Tab 和空格混用(TabError)

此类报错是由于同时使用制表符和空格进行编码导致的,tab键本质上是制表符,而非缩进符。由于不同文本编辑器中制表符代表的空格宽度不一,建议使用空格。

03语法错误(SyntaxError)

语法错误的原因包含下列三种:

  • 无效语法(invalid syntax)标点符号遗漏,中英文符号混用,拼写错误,变量名或者函数名使用了关键字。
  • 标识符中有无效字符(invalid character in identifier)代码中出现了无法识别的字符,检查一下是否有多余字符或者中文字符。
  • 检查到不完整的字符串(EOL while scanning string litera)很多情况下是由于字符串两边的引号不统一。

错误示例

print( 'hello', 'world')错误原因:逗号为中文逗号

报错信息:SyntaxError: invalid character inidentifier

result = (1024+(512*2)/128错误原因:圆括号没有成对出现

报错信息:SyntaxError:unexpected EOF whileparsing

if name =="A"
print("hello")

错误原因:忘记在if/elif/else/while/for/def/class等语句末尾添加冒号

报错信息:SyntaxError:invalid syntax

04变量名错误(NameErro)

变量名错误是最普通也是最常会遇到的内建报错类型,经常会出现在Python变量命名上,如果找不到变量就会引发NameError。关于变量名的规则,需要牢记以下几条:

  • 变量名只能包含字母、数字和下划线,不可用数字开头;
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词;
  • 不要将Python关键字和函数名用作变量名,如print;
  • 变量名应既简短又具有描述性;
  • 慎用小写字母l和大写字母O,因为容易被错看成数字1和0。

出现变量名错误,可以查看变量是否赋值,是否存在大小写不统一或者变量名写错了的情况,找到后加以修正。

错误示例

message = "Hello!"
print(mesage)

错误原因:变量名拼写错误,误将massage拼写为masge

报错信息:NameError: name 'mesage' is not defined

05索引错误(IndexError)

索引是项目在数组或列表中的位置,当我们尝试从列表中访问元素或从列表中不存在的索引中访问元组时,就会发生这种异常。

例如,有一个包含10个元素的列表,索引在0到9之间,如果试图访问索引10或11或更多的元素,就会产生IndexError。

错误示例

a = [1,2,3]
print(a[3])

错误原因:列表a中不存在第4个索引,列表的索引从0开始编号

报错信息:IndexError: string index out of range

06键错误(KeyError)

在读取字典中的key和value时,如 果key不存在,就会触发KeyError错误。

错误示例

d = {'a':1,'b':2}
print(d['f'])

错误原因:键‘f’不存在

报错信息:KeyError: 'f'

07类型错误(TypeError)

在程序中使用不正确或不受支持的对象类型时,会引发该错误。如果尝试调用不可调用的对象或通过非迭代标识符进行迭代,也会引发此错误。

错误示例

age=18
print("我的年龄是"+age)

错误原因:在使用“+”做拼接的时候,必须使用字符串,或者 把数字用str()函数转化成字符串

报错信息:TypeError:can only concatenate str(not"int")to str

08属性错误(AttributeError)

特性引用和赋值失败时会引发属性错误。

此类错误的原因是尝试访问未知的对象属性,换句话说就是找不到对应对象的属性。可以检查类中构造函数__init__()是否写正确,左右两边各两条下划线。

对于初学的小伙伴来说,代码经常出现Bug并不代表着你学得不好。若是将一个个Bug看作游戏里小怪,那么消灭Bug的过程又何尝不是升级的过程呢?

总结

到此这篇关于Python常见报错解决方案的文章就介绍到这了,更多相关Python常见报错解决内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 新手常见6种的python报错及解决方法

    此篇文章整理新手编写代码常见的一些错误,有些错误是粗心的错误,但对于新手而已,会折腾很长时间才搞定,所以在此总结下我遇到的一些问题.希望帮助到刚入门的朋友们. 1.NameError变量名错误 报错: >>> print a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a' is not defined 解决方案:

  • Python初学者常见错误详解

    前言 Python 以其简单易懂的语法格式与其它语言形成鲜明对比,初学者遇到最多的问题就是不按照 Python 的规则来写,即便是有编程经验的程序员,也容易按照固有的思维和语法格式来写 Python 代码,有一个外国小伙总结了一些大家常犯的错误,,我把他翻译过来并在原来的基础补充了我的一些理解,希望可以让你避开这些坑. 0.忘记写冒号 在 if.elif.else.for.while.class.def 语句后面忘记添加 ":" if spam == 42 print('Hello!'

  • 新手常见Python错误及异常解决处理方案

    写Python代码的小伙伴不可避免地会遇到代码执行错误和异常,这次就来详细且不失通俗地总结一下python中的错误和异常. 先抛出两个问题: 什么是Python错误和异常? 如何处理Python错误和异常? 1.语法错误可能是初学者最常遇到的,如下面熟悉的画面: SyntaxError: invalid syntax语法错误又称解析错误,又有老哥会问什么是解析错误?简单来说是基本语法结构写错了,如:多任务写成一行.for循环没加':'等.如下: 多任务写成一行 for循环没加':' 上面示例可以

  • python中常见错误及解决方法

    python常见的错误有 1.NameError变量名错误 2.IndentationError代码缩进错误 3.AttributeError对象属性错误 详细讲解 1.NameError变量名错误 报错: >>> print a<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>NameError:

  • Python中如何处理常见报错

    1.首先是常见的语法错误.2.然后是基础语法中的常见异常.3.最后是操作文件过程中的常见异常,这部分也是重难点知识. 这是我们在终端比较常见的报错信息: 按照 Python 官方文档的定义,我们在终端见到的“错误消息”至少可以被分为两类:语法错误(syntax errors)和异常(exceptions) . 语法错误(syntax errors)是初学者最容易犯的错误,简单来说就是代码不符合 Python 的基本语法规范而导致程序出了问题. 当你的代码完全符合 Python 的语法规范后,就该

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

    1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 "SyntaxError :invalid syntax") 该错误将发生在类似如下代码中: 复制代码 代码如下: if spam == 42 print('Hello!') 2)使用 = 而不是 ==(导致"SyntaxError: invalid syntax") = 是赋值操作符而 == 是等于比较操作.该错误发生在如下代码中: 复制代码

  • 超全面python常见报错以及解决方案梳理必收藏

    AttribteError: 'module' object has no attribute xxx' 描述:模块没有相关属性.可能出现的原因: 1.命名.py文件时,使用了Python保留字或者与模块名等相同. 解决:修改文件名 2.pyc文件中缓存了没有更新的代码. 解决:删除该库的.pyc 文件 AttributeError: 'Obj' object has no attribute 'attr' 描述:对象没有相关属性.可能出现的原因: 1.Python内置对象没有属性. 解决:去除

  • Python常见报错解决方案总结(新手拯救指南)

    目录 前言 01缩进错误(IndentationError) 02Tab 和空格混用(TabError) 03语法错误(SyntaxError) 04变量名错误(NameErro) 05索引错误(IndexError) 06键错误(KeyError) 07类型错误(TypeError) 08属性错误(AttributeError) 总结 前言 如果说写代码最害怕什么,那无疑是Bug.而对于新手来说,刚刚接触编程,在享受写代码的成就感时,往往也会被各式各样的Bug弄得晕头转向.今天,我们就做了一期

  • Python3+selenium配置常见报错解决方案

    第一个坑:'geckodriver' executable needs to be in PATH 1.如果启动浏览器过程中报如下错误 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "D:\test\python3\lib\site-packages\selenium\webdriver\firefox\webdriver.py", li

  • Xcode8下iOS10常见报错闪退,字体适配和编译不过的问题及解决方案

    9月14日凌晨1点,苹果推送了iOS10,于是一上班就迅速升级了iOS10,然后坑就这样开始了... 问题1 首先是xcode的问题,发现xcode升级到8才能真机运行,于是先了解了下iOS10的适配. 有这个iOS10适配总结,还有这个iOS10适配问题收集整理,还有这个iOS10适配,还有很多其他的. 这个好办,取消nullabl关键字就好. 然后另一个蛋疼的问题来了 问题二,编译不过的问题 蛋疼的clang报错le.. 这个是详细的信息,一堆莫名其妙的东西出来了. 隐隐约约感觉是WGS84

  • 详解Maven项目Dependencies常见报错及解决方案

    个人最近项目中所遇到的问题,记录下便自己和同样遇到问题的小伙伴提供一个参考. 通常Maven里报红波浪线的常见问题 ①可能是子工程没有继承父工程 注意父工程中有中对应的module: <groupId>com.fred.parent</groupId> <artifactId>mall</artifactId> <version>1.0-SNAPSHOT</version> <modules> <module>

  • Vue常见报错以及解决方案实例总结

    目录 前言 一.报错结构 二.常见问题总结及解决方法 Mixed spaces and tabs Element is missing end tag TypeError: Cannot read properties of undefined (reading '...') TypeError: ...forEach is not a function '...' is not defined / no-undef 总结 前言 写代码的过程中一定会遇到报错,遇到报错不要担心,认真分析就可以解决

  • R语言初学者的一些常见报错指南

    目录 前言 第一类:工作路径问题 未设定工作路径 当前路径需要修改 第二类:对象名或函数名问题 未找到函数名报错 函数名大小写问题 未找到赋值对象 对象赋值不规范 第三类:符号问题 中文逗号报错 绝对路径的设定符号使用不规范 缺少括号或引号 赋值号报错 必要的引号与括号 第四类:中文注释乱码 第五类:数据集或变量长度不同 总结 前言 与Python.C语言等相比,R语言可以说是比较容易的编程语言之一(更适合数据探索和科研).尽管R语言相对简单,但仍给新手小白们带来无数的困难和痛苦.特别是,当你在

  • npm install常见报错以及问题详解

    目录 前言 一.ERESOLVE unable to resolve dependency tree 1.可能性一:镜像源无法访问 2.可能性二:npm版本过低或者过高 3.可能性三:node和npm版本不匹配 二.Error: EACCES: permission denied, mkdir ‘/usr/local/lib/node_modules/yarn’ 三.Error: Can’t find Python executable “python”, you can set the PYT

  • Go语言将string解析为time.Time时两种常见报错

    目录 1.错误 2.报错信息详细 3.解决方案 1.错误 错误1:parsing time “xx”: xxx out of range错误2:parsing time “xx”:cannot parse"xx" as “-” 2.报错信息详细 详细1: parsing time "2022/10/31 19:00:01": month out of range 详细2: parsing time "2022/10/31 20:00:01" as

随机推荐