网站优化

网站优化

Products

当前位置:首页 > 网站优化 >

如何快速找到并解决Python编程中的失败问题?

GG网络技术分享 2025-11-22 17:03 1


一、 Python编程中的常见错误

写一个python文件,文件中有中文字符,且未声明编码。

python 错误提示TypeError: unsupported operand type for //: str and int是设置错误造成的, 解决方法为:

r = / int print except ZeroDivisionError as e: print finally: print print

既然我们Neng捕获错误,就Neng把错误堆栈打印出来然后琢磨错误原因,一边,让程序接着来施行下去。

在windows下的虚拟周围安装PIL:

再说说 我们来kan另一种错误处理方式:def foo:

也就是说不需要在个个兴许出错的地方去捕获异常,只要在合适的层次去捕获就Neng了。

又通过raise语句抛出去了。这不是有病吗

我们从上往下Nengkan到整个错误的调用函数链。

根据错误提示,在python官网得到如下帮信息。

再说说finally语句被施行。然后程序接着来按照流程往下走。

所以 高大级语言通常dou内置了一套try except finally的错误处理机制,python也不例外。try

main

所以在用except时需要注意的是 它不但捕获该类型的错误,还把其子类也“一网打尽”。

foo调用bar, 后来啊bar出错了这时只要main捕获到了就Neng处理:

def foo: return / int

def bar: return foo * 2

def main: try:

让我们用一个例子来kankantry的机制

try: print

foo

还有啊,Ru果没有错误发生,Neng再except语句块后面加一个else,当没有错误发生时会自动施行else语句。

出现报错信息:

python需要严格的遵循缩进缩进不正常会引起错误。

还有啊, 在except中raise一个Error,还Neng 错误类型

try: / 0

except ZeroDivisionError: raise ValueError

Traceback :

今天我们来讲解python用过程中常见的8种报错及解决方案。

1.特性引用和赋值输了时会引发属性错误.溪流涌动在刚接触python过程中,编写任意代码dou有兴许出现报错,Ru果对报错类型不熟悉兴许就比比kan困难找出问题.

图片中没有定义numi但是print函数里面用了所以出现命令错误。

declared; see //..python/dev/peps/pep-/ for details for details。

在程序运行的过程中, Ru果发生了错误,Neng事先约定返回一个错误代码,这样,就Neng晓得是不是有错以及出错的原因。

输出后来啊为:

原因:

二、 调用堆栈

File C:/Python36/test.py, line5, in bar return foo * 2

调用return foo * 2时出错了在test.py中第5行,但原因是第2行

全部常见的错误类型和继承关系kan这里:

本文了Python编程中遇到的一些典型错误,如Matplotlib Deprecation Warning、IndexError、KeyError等,并给了详细的解决办法,包括修改导入模块的方式、处理列表索引、数据类型转换等问题。

python的错误提示非常人性化,通常报错时就会给解决办法,比如一些error就hen轻巧松解决,整理了一下遇到的稍微麻烦一些的:

你还Neng猜测, 错误得有hen许多种类,日过发生了不同类型的错误,得由不同的except语句块处理。

END

pip install PIL

一套Python语言Django框架飞迅速开发平台,源码免费分享2022年4篇Zui新鲜文章。文章浏览阅读2.5k次,点赞14次,收藏42次。本文介绍了Python编程中常见的八巨大错误类型,包括缩进错误、 Tab和空格混用、语法错误、变量名错误、索引错误、键错误、类型错误和属性错误,并给了错误示例和修正方法,帮开发者geng优良地搞懂和优良决Python编程中遇到的问题。

ZeroDivisionError: division by zero

r = somefunction if r == : return return rdef bar:

ERROR:root:division by zero

上面的代码在计算10 / 0时 会产生一个除法运算错误:try.

result .0finally

这告诉我们的是错误的跟踪信息。

所以按照帮文档的提示以及例子,在Python文件中加入一个编码声明。

在bar函数中, 我们明明Yi经捕获了错误,但是打印一个ValueError之后

python的错误其实也是class,全部的错误类型dou继承自BaseException,

4、阅读错误消息中的行号和位置信息,通常Neng帮飞迅速定位问题。

《incluedpage报错,别慌!咱们一步步来解决》在编程的世界里,遇到报错那是再...

在操作系统给的调用中,返回错误码非常常见。比如打开文件的函数open, 成功时返回文件的说说符,出错时返回-1用错误码来表示是不是出错十分不便,基本上原因是函数本身得返回的正常后来啊和错误码混在一起,造成调用者非...不可一巨大堆的代码来判断是不是出错:

def foo:

python内置的logging模块Neng非常轻巧松地记录错误信息:

import loggingdef foo: return / intdef bar: return foo * 2def main: try:

所以呢,错误并不是凭空产生的,而是有意创建并抛出的。

File C:/Python36/test.py, line8, in main print('Hello, world!AI写代码python.本文将对Python中常见的报错进行详细的介绍,并给解决办法,帮读者geng优良地搞懂和优良决Python报错。

Python中的语法错误是Zui常见的错误之一,通常是基本上原因是在代码中用了不符合

从输出Nengkan到, 当错误发生时后续语句print不会被施行,except由于捕获到ZeroDivisionError所以呢被施行。

出错时会琢磨错误信息并定位错误发生的代码位置才是关键的。

施行后来啊为:

FooError: invalid value:

File C:/Python36/test.py, line , in module

Ru果把除数0 变成2, 则施行后来啊如下

try.

python程序,报错NameError: name XX is not defined 是没有声明造成的,需要在文件的前两行进行声明编码,声明方法为:

基本上原因是错误是class,捕获一个错误就是捕获到该class的一个实例。

捕获错误目的只是记录一下便于或许追踪。

用 pip install Pillow 安装即可, 效果如下:

说明调用main出错了在代码文件test.py中第10行,但是原因是第8行:

Ru果不捕获错误,天然Neng让python说明白器来打印出错误堆栈,但是程序也被收尾了。

当我们觉得有些代码兴许会出错时 就Neng用try来运行这段代码,Ru果施行出错,则后续代码不会接着来施行

而是直接跳转至错误处理代码,即except语句块

眼下,既有出错代码的位置,又有错误的类型与说明白,Ru果还是不Neng找出问题,那么,Neng百度了,百度时将再说说一行绿色框里的内容作为搜索词进行搜索,Neng找到一巨大堆文章。

其实,异常并不可怕,异常也不是无没钱无尽的,下面是pyhton中的全部异常以及他们之间的继承关系。

该阶段相信巨大家dou会遇到,优良许多东西dou晓得,却真实正Zuo起来的时候无从下手!个人觉得还是需要许多练习,写的许多了天只是然的就晓得该用啥...

int函数兴许会抛出ValueError,所以我们用一个except捕获ValueError,用另一个except捕获ZeroDivisionError

Ru果Neng选择pythonYi有的内置错误类型,尽量用python内置的错误类型。

例中字符串类型的数据不Neng相乘引起的错误。

但是得在文档中写清楚兴许会抛出哪些错误,以及错误产生的原因。

错误第一行:

这样一来就巨大巨大少许些了写 try except finally的麻烦。

File C:/Python36/test.py, line , in foo raise FooError

其实 这种错误处理方式不但没病,而且相当常见。

优良比一个员工处理不了一个问题时就把问题一直往上抛,到头来会抛给CEO去解决。

程序也Neng主动抛出错误,让调用者来处理相应的错误。

bar

except Exception as e: print finally: print

mainprint

本文给通过一个具体的编码问题的解决办法,给巨大家详细分享了python中的编码问题的来龙去脉,非常的细致全面,有需要的细小伙伴Neng参考下。自己编程中遇到的Python错误和优良决办法汇总整理。

python的内置函数会抛出hen许多类型的错误,我们自己编写的函数也Neng抛出错误。

python全部的错误dou是BaseException类派生的。

比如:

try:

n = int if n == : raise ValueError return / n

同样是出错, 但程序打印完错误信息后会接着来施行,并正常退出。

通过这些个实际案例的学,Neng帮其他开发者飞迅速定位并解决问题,搞优良编程效率。

一、Python周围配置相关问题1.Python安装输了:用户兴许会遇到安装Python时输了的问题,这兴许是基本上原因是系统路径设置不....通过搞懂和应用这些个方法,Neng帮开发者geng有效地诊断和修优良Python程序中的问题。

通过配置,logging还Neng把错误记录到日志文件里方便事后排查。

Ru果要抛出错误, 先说说根据需要,Neng定义一个错误的class,选择优良继承关系,然后用raise语句抛出一个错误的实例:

class FooError: passdef foo:

r = foo if r == : print else: pass一旦出错,还要一级一级上报,直到某个函数Neng处理该错误

解决办法:

Ru果错误没有被捕获,他就会一直往上抛,再说说被python说明白器捕获,打印一个错误信息,然后程序退出。

调用bar

出错了 在代码文件test.py中第8行,但原因是第5行:

这时我们找到了源头,原来在第2行调用return / int出错了错误为ZeroDivisionError

第二个except永远也捕获不到UnicodeError, 基本上原因是UnicodeError是ValueError的子类

出现报错信息:File encode.py, line 1SyntaxError:

一、 :Python的舞台与我们的挑战二、手艺概述:Python的魔力与陷阱核心特性与优势代码示例三、手艺细节:深厚入错误背后的原理IndentationError:缩进错误NameError:未定义变量TypeError:类型不匹配四、实战应用:真实实场景下的错误与应对应....python中常见错误及解决办法.Python编程常见错误与解决办法.

except Exception as e:

由于没有错误发生,所以except语句块不会被施行,但是finallyRu果有则一定会被施行,当然finally也Neng没有

施行完except后Ru果有finally语句块,则施行finally语句块,至此,施行完毕。

fooexcept ValueError as e: printexcept UnicodeError as e: print

只有在少许不了的时候才定义我们自己的错误类型。

注意:raise语句Ru果不带参数,就会把当前错误原样抛出。

出错并不可怕,可怕的时不晓得哪里出错了。解读错误信息时定位错误的关键。

保存之后 运行,运行成功。

Ru果有,也是被第一个except给捕获了。

三、 记录错误

但是由于当前函数不晓得得怎么处理该错误,所以Zui恰当的方式是接着来往上抛,让顶层调用者去处理。

ValueError: do not input zero!只要是合理的转换逻辑就Neng, 但是绝不得把一个IOError转成毫不相干的valueError.

四、抛出错误

logging.exception

一、python的错误处理:

Non-ASCII character \xe7 in file encode.py on line , but no encoding

r = / int print except ValueError as e: print except ZeroDivisionError as e: print else: print finally: print print

经过查询资料找到,python2Neng用pip install PIL安装PIL第三方包。而我是用的是python3,眼下python3Yi经用Pillow代替PIL。

例中if num = ;写成了num==,没满足if应有的语法引起的错误。

python内置的 try except finally 用来处理错误十分方便。

用try except捕获错误还有一个巨巨大的优良处,就是Neng跨越许多层调用,比如函数main调用foo

没错,Neng有优良几个except来捕获不同类型的错误:

print

标签:

提交需求或反馈

Demand feedback