首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文教你读懂 Python 的异常信息

在上面的错误信息,异常类型是 NameError,意思是名称使用了一个没定义名称(变量、函数、类)的引用。本例,引用的名称是 someon。...(Pycharm 通过点击文件链接可以定位到具体位置) 在这个例子,因为我们的代码没有使用任何其他 Python 模块,所以我们在这里看到,它表示所处位置是执行的文件。...(本例为 int)没有访问的属性, 在这个例子属性为 b。...并没有太多的内容,但是,结合上面的错误信息,就可以解决这个问题。 NameError 当你引用了变量、模块、类、函数或代码没有定义的其他名称时,将引发 NameError。...这个例子 print 使用了没有定义过的变量 persn 所以出现了错误。 一般拼写变量名出现问题时会引发这种错误

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

浅谈python出错时traceback的解读

后面提到的错误信息等词都表示Traceback。 当你的程序导致异常时,Python 将打印 Traceback 以帮助你知道哪里出错了。...greet,然后传入参数 someone,然后函数内,一个 print 语句其中 someon 是一个没有定义的变量,然后通过 greet (‘Chad’),调用刚才定义的 greet 函数,运行之后会出现如下错误信息...在上面的错误信息,异常类型是 NameError,意思是名称使用了一个没定义名称(变量、函数、类)的引用。本例,引用的名称是 someon。...一般情况下看错误信息的最后一行就能定位到错误的原因。然后代码搜索错误提示名称’someon’,然后发现这是一个拼写错误,然后我们改成 someone 即可。...(Pycharm 通过点击文件链接可以定位到具体位置) 在这个例子,因为我们的代码没有使用任何其他 Python 模块,所以我们在这里看到<module ,它表示所处位置是执行的文件。

1.6K40

Python变量基础

上一次我们聊过 Python 变量名的命名规则(Python到底能不能用中文变量名?),今天我们再聊聊更多关于变量的事。 2....为什么要有变量 有个刚学 Python 第一天的同学问: 不懂为啥要用变量,需要什么值直接写就好了,干嘛还多此一举?... Python 语言中,变量需要遵循「先创建,后使用」的原则。 Python 要创建一个变量,就是用等号(=)向一个变量名赋值。如: a = 1 这就创建了一个值为 1 的变量 a。...如果直接使用一个没有赋值过的变量名,会引发一个名称定义NameError 错误,导致程序中断。...于是就得到一个这样的 NameError 报错: 所以,如果你看到报错莫名地说你某个变量 not defined,那就找找看所有用到的地方是不是有拼写错了。

12220

20210225-1 Python错误与异常「建议收藏」

一般情况下,Python无法正常处理程序时就会发生异常。异常是Python的对象,表示一个错误。当Python脚本发生异常时,我们需要捕获并处理异常,否则程序会终止执行。...代码里会有很多异常,比如 NameError 名称错误,Syntax Error 语法异常,Type Error 类型错误,Value Error值异常;这四种都是异常,异常其实是一个事件 代码里有异常是非常正常的事情...try/except语句用来检测try语句块错误,从而让except语句捕获异常信息并处理。如果你不想在发生异常时结束程序,只需try语句块捕获异常即可。...,raise可以抛出更深更详尽的异常信息 Python重要的内建异常类 Exception:常规错误的基类 AttributeError:对象没有这个属性 IOError:输入/输出操作失败 IndexError...:序列没有此索引 KeyError:映射中没有这个NameError:未声明/初始化对象(没有属性) SyntaxError:python语法错误 SystemError:一般解释器系统错误 ValueError

73330

​【Python】单下划线与双下划线的区别

如果单下划线前面没有语句执行,交互式解释器将会报单下划线没有定义错误。也可以对单下划线进行赋值操作,这时单下划线代表赋值的结果。但是一般不建议对单下划线进行赋值操作,因为单下划线内建标识符。...__all__是一个字符串列表,不管是普通的还是单下划线的属性、方法和类,都将导出来,使用其他不在这个字符列表上的属性、方法和类,都会报未定义错误。...AMethod类定义了两个方法,一个是以双下划线开头的__method方法,另外一个是普通方法。BMethod类,重写了AMethod类的__method方法。...名称前后的双下划线(如:__ init __) Python,我们可以常常看到类似于“__ init ___”的方法,这表示Python内部调用的方法,一般不建议程序调用。...名称前后的双下划线:这类方法是Python内部定义的方法,你可以重写这些方法,这样Python就可以调用这个重写的方法以及利用操作符。

3.8K70

Python常见十六个错误集合,你知道

,其实这就是命名错误的问题,如果仔细看“×”是中文下打的符号,python是不认的,解决方案是使用英文字母”x“代替,错误即可解决,而且也能看到使用的卷积核的大小。...,直接一下TAB就可以了,保持代码风格的一致Python的使用是非常重要的。...3.TypeError: max_pool2d() got an unexpected keyword argument ‘atride’ 这个错误就是纯粹的手误问题了,你定义的函数没有这个关键字,这时候就要自己查看定义的函数名字...,这里应该是”stride“,卷积神经网络是定义步长的。...4.NameError: global name ‘time’ is not defined 这个问题是调用函数time.time()用来计算时间损耗时,使用的函数时报错的,具体解决方案很简单,只要在代码开头加上

1.2K20

Python3之异常处理】 转

KeyboardInterrupt Ctrl+C被按下 NameError 尝试访问一个没有申明的变量 SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)...导入模块/对象失败 LookupError 无效数据查询的基类 IndexError 序列没有此索引(index) KeyError 映射中没有这个键 MemoryError...内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError 访问未初始化的本地变量 ReferenceError...二、异常处理 1.异常处理的定义 python解释器检测到错误,触发异常(也允许程序员自己触发异常) 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,与异常处理有关) 如果捕捉成功则进入另外一个处理分支...>>:gg invalid literal for int() with base 10: 'gg' 万能异常 python的异常,有一个万能异常:Exception,他可以捕获任意异常 s1 =

1.2K20

如何理解Python包的引入

Python的from import *和from import *,它们的功能都是将包引入使用,但是它们是怎么执行的以及为什么使用这种语法呢?...从一模块导入全部功能 from import * means意味着“希望能访问有权限访问的全部名称”。...如果我们不定义__all__(我们在上面的something.py就没定义),import *默认的导入方式是导入除了下划线(_)开头的所有名称。...不同之处在于,如果你一个包的__init__.py里面没有声明__all__,from import *语句不会导入任何东西(这个说法也不全对,正确的说法在此) 但是,这有什么不好?...凡是导入时带点的,点的左边都必须是一个包 (import a.fun1 其中a为py文件)这种导入形式是错误的。

79520

Python 入门第十七讲】异常处理

python 不同类型的异常: Python ,当程序执行过程中发生错误时,可能会引发几个内置的 Python 异常。...TypeError:当操作或函数应用于错误类型的对象(例如将字符串添加到整数)时,将引发此异常。NameError:当在当前作用域中找不到变量或函数名称时,将引发此异常。...NameError块不执行,因为代码没有NameError异常。...示例:该代码定义了一个函数,该函数AbyB(a, b)计算c为 ((a+b) / (a-b)) 并处理一个势ZeroDivisionError.如果没有除以零错误,它会打印结果。...然后,它捕获异常,打印“异常”,并使用raise重新引发相同的NameError异常。这演示了如何在 Python 引发和处理异常,从而允许自定义错误消息和进一步的异常传播。

28511

第七章 Python异常处理

IndentationError 缩进错误 TypeError 对象类型与要求不符合 ImportError 模块或包导入错误;一般路径或名称错误 KeyError 字典里面不存在的键 NameError... 'a' is not defined 会抛出异常,提示名字没有定义。...那我们可以这样,当没有这个变量的时候就变量赋值,否则继续操作。 >>> try:              ...   print a ... except NameError: ...   ...开发往往不知道什么是什么异常类型,这时就可以使用Exception类型来捕捉所有的异常: 例如:打印一个类对象里面没有的属性 >>> class A: ...   a = 1 ...   ...7.4 else和finally语句 7.4.1 else语句 表示如果try的代码没有引发异常,则会执行else。 继续按照上面定义的类举例: >>> try:     ...

54610

python3的异常处理

python运行的时候难免出现一些异常,但是python遇到异常的时候就会停止了,但是有时候我们需要python即使在有异常的时候也需要继续向下运行,这个时候我们就需要用到异常处理了. 1.简单的异常处理如...a' is not defined 我们没有定义变量a的时候它就会报错,报错是NameError 我们如何让他这样也继续运行下去呢?...try: print(a) except NameError: print('NameError 意思就是没有这个变量啊') NameError 意思就是没有这个变量啊 这样即使我们没有定义...except (NameError,SyntaxError) as eor: print('这个的报错是: %s'%eor) 这个的报错是: name 'a' is not defined 这里没有定义...hello 可不管是对是错都会执行的! 6.异常处理抛出的异常 这个定义就是,程序在运行的过程可能会出现的异常,我们对着异常进行处理之后(比如记录下来),然后再把这个异常正常的抛出来!

54120

Python进阶|聊聊异常处理

前言 在编写代码,总会遇到一些bug和报错,怎么去捕获这些异常,并进行处理,以让程序更健硕了?本篇文章将带你聊聊Python的异常处理。...语法错误很好理解,就是我们写的代码不符合Python代码的规范,导致程序无法识别和运行,比如下面这个例子: def add(a,b) print(a+b) add(1,2) #SyntaxError...而异常是指本身的程序编写没有错误执行中出现了问题,抛出了异常,比如我们都知道0不能作为分母,那我们把0当为分母,就会抛出异常ZeroDivisionErro。...0不能为分母的错误,那NameError为什么没有被捕捉到了?...这个异常必须是异常实例或者是一个异常类。 那我们通过raise玩个好玩的事情,0不能为分母的异常提示是英文的,自己主动抛出个异常,换为中文提示。

59030

一文搞懂Python异常错误

为什么要写这篇呢,之前有很多小伙伴在运行代码时遇到了各种各样的问题,甚至有这样的一句话,编程一小时,找错一整天,所以小卡今天就整理了一下日常常见的几种报错类型,come~ 首先我们来说一下错误和异常,...什么是异常呢,异常就是程序运行时,某一句引发错误导致之后的代码都无法运行,是不是有点丛林大盗的感觉,此山是开,此树是栽,哎呀呀~ Python无法正常处理程序时就会发生一个异常。...这里的异常Python对象,表示这段代码是这个问题。...ValueError:substring not found 值错误,输入的数据类型跟要求的不符合 NameError:name 'a' is not defined 未初始化对象,变量没有定义...Python执行程序时,检测到错误,触发异常,异常触发后且没有处理的情况下,程序会立即在当前异常处停止,后面的代码就不会运行,那么我们的程序就会直接崩溃,弱不禁风,所以你必须提供一种异常处理机制来增强你程序的健壮性与容错性

77010

问 Crossin】python程序一闪而过,是的打开方式不对?

try: dfdg = xidfg # 定义一个错误变量 f = 2/0 # 除0错误 except ZeroDivisionError as e: print(e) finally:...: name 'xidfg' is not defined except 未能捕捉变量定义错误,直接报错,不会执行最后的打印。...教程里的“猜数字”游戏,answer=raw_input(),然后比较answer和答案num的大小,为什么总是显示“too big”? 这个昨天的直播中有提到。...因为 raw_input 得到的输入是字符串,无法直接和数字去比较大小。但在python2里,你这样做了,也不会报错,而是产生不可预知的结果。python3里,则会直接报错。...Python2 应改为: answer = input() Python3 可使用: answer = eval(input()) 以上就是每周的内容。 哦,对了,助教小哥挺帅的?

95290

一篇文章带你弄懂Python异常简介和案例分析

大家好,是Go进阶者,今天给大家分享一些Python基础 (异常),一起来看看吧~ 一、异常简介 当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常...想一想: 上例程序,已经使用except来捕获异常了,为什么还会看到错误的信息提示?...答: except捕获的错误类型是IOError,而此时程序产生的异常为 NameError ,所以except没有生效。...文件不存在,那么会产生 IOError 异常 print('-----test--2---') print(num)# 如果num变量没有定义,那么会产生 NameError 异常 except... else 咱们应该对else并不陌生,if,它的作用是当条件不满足时执行的实行;同样try...except...也是如此,即如果没有捕获到异常,那么就执行else的事情。

47430

Python基础18-异常处理

异常包含三个部分: 1.traceback异常信息追踪 2.异常类型 3.异常的信息 错误分为两大类: 1.语法上的错误 2.逻辑上的错误 ---- 为什么要异常处理?...避免程序因为异常而崩溃,所以应用程序应该对异常进行处理,从而增强程序的健壮性 语法错误: 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) #语法错误示范一 if...不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,一个异常标识一种错误 常用异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性...x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationError 语法错误(的子类) ;代码没有正确对齐...() self.msg=msg def __str__(self): return '' %self.msg raise MyException('定义的异常

44820

Python异常处理小结

这两句话就是当发生异常是输出的提示信息,而能输出这样的信息的前提是,系统判断出了你输入的用户名或者密码是错误的。Python,“系统判断”的这个行为被称为异常捕获(好像猎人捕获了猎物…)。...当我们输入“机器学习和数学”的时候,下面输出的错误是TypeError,也叫做类型错误,因为么程序定义了两个数的除法,而“机器学习和数学”是一个字符串类型的数据,所以会发生类型错误的异常信息。...图9里面把Python中常见的错误都列举到了,可以重点关注一下!!! # coding:utf-8 #raise NameError ("这是一个名称错误 !")...然后是一个循环,将文件的每一行都打印出来。这里无论是否出现异常,对于支持Python“上下文管理协议”的文件对象来说,Python最后会为关闭这个文件。为什么需要关闭文件?...无效数据查询的基类 IndexError 序列没有此索引(index) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError

1.2K70

上手之Python之异常

什么是异常 当检测到一个错误时,Python解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的“异常”, 也就是我们常说的BUG bug单词的诞生  早期计算机采用大量继电器工作,马克二型计算机就是这样的...f = open('linux.txt', 'r') 异常的捕获方法  为什么要捕获异常 世界上没有完美的程序,任何程序在运行的过程,都有可能出现:异常,也就是出现bug 导致程序无法完美运行下去。...as e: print('name变量名称定义错误') ① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。...也没有捕获处理这个异常的时候 main函数会捕获这个异常,  这就是异常的传递性....提示:     当所有函数都没有捕获异常的时候, 程序就会报错  利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候, 就可以main函数设置异常捕获, 由于无论整个程序哪里发生异常

76240
领券