首页
学习
活动
专区
圈层
工具
发布

挑战30天学完Python:Day15 错类类型

如果代码运行失败,Python解析器一般会报出相关的错误提示,其中包含了代码出错的行和错误类型。它有时候还会给出对应修复建议。...因此发生了没有此模块的 ModuleNotFoundError 错误。现在让我们来修复它。...AttributeError AttributeError表示属性错误。一般是某个声明的对象没有此属性,但却被引用进而引发的错误。...我尝试从数学模块调用pi函数,而不是pi。因此会引发一个AttributeError错误,这意味着该函数在模块中不存在。我们将PI改成pi来修正它。...这将祝你成为一个更好的程序员。 你如此优秀。在通往伟大的路上已经走了一半的路程了。本次没有额外的作业,但如果上边的例子,你并没有亲自尝试,那么请你把他们当作练习完成错误见证和debug修复它们。

79220

全网最值得收藏的Python常见报错及其解决方案,再也不用担心遇到BUG了!

你好呀,我是灰小猿,一个超会写bug的程序猿!...在编写并调试Python程序的过程中,总会遇到这样或那样的错误,其中绝大多数错误都是由于大家粗心或语法错误引起的。所以接下来我总结了常见的错误类型及其详细讲解和解决排查方案。...2.7的版本是比较老一点的,可能在网络教程、教学文档和出版图书中有的是用Python2.7实现的, 但是现在的大部分Python开发已经使用了3.x的版本,所以当我们直接将Python 2.7代码运行在...刚开始学习最常见的错误就是混用Tab和Space键实现代码缩进,这是很容易报错的,而且肉眼很难分辨出来。虽然很多IDE编辑器可以选择显示空格,但是即便是这样,也很难找到到底哪里有问题。...所以在上面的代码中,由于class C中的x属性没有找到,它会向上找它的基类(尽管Python 支持多重继承,但上面的例子中只有A)。换句话说,class C中没有它自己的x属性,其独立于A。

2K01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python学习笔记(八)·错误、调试和测试

    END 由于没有错误发生,所以except语句块不会被执行,但是finally如果有,则一定会被执行(可以没有finally语句)。...此外,如果没有错误发生,可以在except语句块后面加一个else,当没有错误发生时,会自动执行else语句: try: print('try...')...8.1.2 调用栈 如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出。...小结: 写程序最痛苦的事情莫过于调试,程序往往会以你意想不到的流程来运行,你期待执行的语句其实根本没有执行,这时候,就需要调试了。...当我们编写注释时,如果写上这样的注释: def abs(n): ''' Function to get absolute value of number.

    1.5K30

    【最全BUG修复宝典】肝!你遇到的BUG解决方案全在这了!

    你好呀,我是灰小猿,一个超会写bug的程序猿!...在编写并调试Python程序的过程中,总会遇到这样或那样的错误,其中绝大多数错误都是由于大家粗心或语法错误引起的。所以接下来我总结了常见的错误类型及其详细讲解和解决排查方案。...但是现在的大部分Python开发已经使用了3.x的版本,所以当我们直接将Python 2.7代码运行在Python 3.x环境中时, 可能会发生一些语法错误。接下来就总结一下。...刚开始学习最常见的错误就是混用Tab和Space键实现代码缩进,这是很容易报错的,而且肉眼很难分辨出来。虽然很多IDE编辑器可以选择显示空格,但是即便是这样,也很难找到到底哪里有问题。...所以在上面的代码中,由于class C中的x属性没有找到,它会向上找它的基类(尽管Python 支持多重继承,但上面的例子中只有A)。换句话说,class C中没有它自己的x属性,其独立于A。

    1.6K31

    Python基础语法

    # print(add(1, 2)) 我们右击运行,发现不会输出任何内容,虽然我们定义了一个add函数,但是并没有调用add函数,当我们把# print(add(1, 2))的#去掉时,再右击运行,打印台会输出...我们运行下面这段代码,会发现Pycharm打印台需要我们输入2个数,当我们输入第一个数字时,按下Enter,会让我们输入第二个数,输完第二个数,按Enter,程序运行结束。...我们创建了一个People类,People类有一个构造函数,当我们创建一个People类的对象时需要传入一个参数,创建的对象可以调用People类中的方法 异常处理 我们在编写Python程序时,经常会因为一些错误导致剩下的代码无法执行...我将给大家罗列一些常见异常,如下表格所示: 异常 描述 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件...ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationError 语法错误(的子类) ;代码没有正确对齐 IndexError 下标索引超出序列边界,比如当x只有三个元素

    94420

    关于“Python”的核心知识点整理大全26

    10.3.9 决定报告哪些错误 在什么情况下该向用户报告错误?在什么情况下又应该在失败时一声不吭呢?如果用户知 道要分析哪些文件,他们可能希望在有文件没有分析时出现一条消息,将其中的原因告诉他们。...用户关闭程序时,你 几乎总是要保存他们提供的信息;一种简单的方式是使用模块json来存储数据。 模块json让你能够将简单的Python数据结构转储到文件中,并在程序再次运行时加载该文件 中的数据。...10.4.2 保存和读取用户生成的数据 对于用户生成的数据,使用json保存它们大有裨益,因为如果不以某种方式进行存储,等程 序停止运行时用户的信息将丢失。...下面来看一个这样的例子:用户首次运行程序时被提示输入自己的名字,这样再次运行程序时就记住他了。...无论执行的是except代码块还是else代码块,都将显示用户名和合适的问候语。如果这个程 序是首次运行,输出将如下: What is your name?

    21510

    Python 基础(十四):错误和异常

    我们编写程序通常使用开发工具编写,比如:我使用 Pycharm 工具编写 Python 程序,像这种语法错误,在编写程序时,编译器就会检测出来并提示我们,因此,我们编写好的程序几乎不会出现这种问题。...异常 即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误,运行期检测到的错误被称为异常;大多数的异常都不会被程序处理,都以错误信息的形式展现。...断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...) KeyError 映射中没有这个键 MemoryError 内存溢出错误(对于Python 解释器不是致命的) NameError 未声明/初始化对象 (没有属性) UnboundLocalError...; 如果发生了一个异常,在 except 子句中没有与之匹配的分支,它就会传递到上一级 try 语句中; 如果最终仍找不到对应的处理语句,它就成为一个 未处理异常,终止程序运行,显示提示信息。

    1.7K20

    Python3 常见错误和异常处理

    \ KeyboardInterrupt 用户中断执行(通常是输入^C) 用户按下Ctrl-C(或者Delete)终止一个正在运行的程序时,会产生,重新运行即可 Exception 常规错误的基类 \...)零 (所有数据类型) 0做分母时抛出 AssertionError 断言语句失败 \ AttributeError 对象没有这个属性 当一个属性引用或赋值失败时,会产生 EOFError 没有内建输入.../对象失败 无法导入一个模块或者模块中的一个成员时会产生该异常 LookupError 无效数据查询的基类 \ IndexError 序列中没有此索引(index) 如果索引超出范围,就会产生IndexError...KeyError 映射中没有这个键 如果没有找到一个值作为字典的键,会产生异常 MemoryError 内存溢出错误(对于Python 解释器不是致命的) 如果一个程序用尽了所有内存,而且可以恢复,会产生...NameError 未声明/初始化对象 (没有属性) 如果代码引用了一个名字,而当前作用域中不存在这个名字,会产生 UnboundLocalError 访问未初始化的本地变量 一种NameError,

    2K20

    为什么要对程序进行调试

    这段程序看起来一切正常,但如果将 data 改为一个空列表: data = [] 再次运行程序时,会发现出现了一个错误:ZeroDivisionError: division by zero。...我通常会问:“为什么没法运行?你看过报错信息吗?” 大部分同学会摇头。所以这个问题我通常无法直接回答,因为缺少最基本的调试信息。而如果你把调试信息提供到位,基本也就不需要我回答了。...归根结底,是从来没有人告诉过初学者,你得先调试。其实,报错信息就是程序的“病历”,它能告诉我们程序哪里出错了,为什么出错了。 让我们再回到上面的例子。只需要仔细阅读这些信息,就能找到问题所在。...很多同学因为英语不好而害怕看报错信息,这种情况我也能理解。因为报错信息通常是英文的,而且有些单词比较复杂。但是,报错信息其实是有规律可循的。...也可以利用打印确定程序的运行路径,一个函数有没有被调用,一个 if 块有没有被执行,一个 while 循环执行了几次,到了哪一步中断了,都可以通过打印相关的信息来查看。

    19010

    Python 中5种下划线的含义都是什么?

    但是,前导下划线的确会影响从模块中导入名称的方式。...假设你在一个名为my_module的模块中有以下代码: 现在,如果使用通配符从模块中导入所有名称,则Python不会导入带有前导下划线的名称(除非模块定义了覆盖此行为的__all__列表): 顺便说一下...如果你仔细观察,你会看到此对象上有一个名为_Test__baz的属性。 这就是Python解释器所做的名称修饰。 它这样做是为了防止变量在子类中被重写。...我们来看一看: 当我们尝试查看t2 .__ baz的值时,为什么我们会得到AttributeError? 名称修饰被再次触发了!...但是,为了使拆分表达式成功运行,我需要将包含在元组中的所有值分配给变量。

    1.6K40

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

    (Pycharm 中通过点击文件链接可以定位到具体位置) 在这个例子中,因为我们的代码没有使用任何其他 Python 模块,所以我们在这里看到,它表示所处位置是在执行的文件。...AttributeError 当你访问一个对象的属性,但是这个属性并没有在这个对象定义的时候,就会引发 AttributeError。...' object has no attribute 'b' AttributeError 的错误消息行告诉我们特定对象类型(在本例中为 int)没有访问的属性, 在这个例子中属性为 b。...并没有太多的内容,但是,结合上面的错误信息,就可以解决这个问题。 NameError 当你引用了变量、模块、类、函数或代码中没有定义的其他名称时,将引发 NameError。...前面我们说了很多异常的相关知识,但是我们应该如何利用好呢,这里我们就重点说一下,如何通过记录异常信息,方便后期程序的调试。 下面让我们看一个关于使用 requests 模块的例子。

    3.2K10

    有史以来最全的异常类讲解没有之一!爆肝3万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第一部分

    如果你在这个时候按下Ctrl+C,你会看到打印出的“用户中断了程序。”消息,并且程序会立即停止运行。 注意:由于这个脚本包含一个无限循环,所以如果你没有按下Ctrl+C来中断它,它将永远运行下去。...由于我们没有从函数中返回一个有效的结果,所以函数返回了None,这被打印为第三行输出。 注意:在上面的代码中,我添加了一个注释来说明如果尝试传递一个字符串作为除数将会发生什么。...numbers: # print(number) 运行结果 1 2 3 4 5 迭代已完成,没有更多元素。...AttributeError AttributeError 是 Python 中的一个内置异常,它会在尝试访问对象的属性或方法时,如果该对象没有这样的属性或方法,则被触发。...没有 age 属性,尝试访问它将触发 AttributeError 异常。

    1.4K10

    提高代码效率的6个Python内存优化技巧

    但是其实有许多方法可以显著优化Python程序的内存使用,这些方法可能在实际应用中并没有人注意,所以本文将重点介绍Python的内置机制,掌握它们将大大提高Python编程技能。...在运行时可以向Python类添加额外属性和方法的能力。 例如,下面的代码定义了一个名为Author的类。最初它有两个属性name和age。...在大多数情况下,我们不需要在运行时更改实例的变量或方法,并且__dict__不会(也不应该)在类定义后更改。所以Python为此提供了一个属性:__slots__。...(numbers)) # 1 上面的代码显示了一个编写和使用生成器的基本示例。...有许多强大的第三方模块和工具提供更多的数据类型,如NumPy和Pandas。如果我们只需要一个简单的一维数字数组,而不需要NumPy提供的广泛功能,那么Python的内置数组是一个不错的选择。

    53210

    一篇让你直接入门的 Python 教程

    linux:打开终端并运行:Python Windows:如果只安装了一个版本的Python,只需运行Python。...有些人更喜欢 IDE,但是一个简单得多的代码编辑器对于学习来说要好得多。 为什么?当你在学习一些新的东西时,你想尽可能多地剥离复杂的层次。简化事情。...因此,代码在编辑器中更容易阅读,还识别了三个简单的错误,其中一个是显示停止。 (8)数到10 准备好开始一个基本的例子了吗?! 如果你是编程新手,你可能不会。充分理解代码,但重要的是这些概念。...这些错误可能更复杂,因为没有生成错误。代码运行,生成意外和或不能正确的输出,或没有输出。...为什么要在代码中使用注释? 测试 help() 功能 float到dir()功能 None。它代表什么? 属性检查变量或值的数据类型,type()功能。

    97920

    python简明笔记

    sys.argv 的第一个值是命令自身的名字 异常(错误调试和测试) 处理异常 使用try…except块来处理异常。...l如果发生了一个异常,在 except 子句中没有与之匹配的分支,它就会传递到上一级 try 语句中。 l如果最终仍找不到对应的处理语句,它就成为一个 未处理异常,终止程序运行,显示提示信息。...有些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问...仍然可以访问 Student >>> del s.name # 如果删除实例的name属性 >>> print(s.name) # 再次调用s.name,由于实例的name属性没有找到,类的name属性就显示出来了...'score'没有被放到__slots__中,所以不能绑定score属性,试图绑定score将得到AttributeError的错误。

    2.4K90

    【Python】教你彻底认识Python中的异常处理

    在编写程序时,难免会遇到各种各样的错误或异常(Exception)。这些异常可能是由于输入错误、文件不存在、网络连接失败等原因引起的。如果不对这些异常进行处理,程序会中断执行,从而导致用户体验不佳。...异常的基本结构 异常处理的一般结构如下: try: # 可能发生异常的代码 except ExceptionType: # 处理异常的代码 else: # 没有发生异常时执行的代码...在这个例子中,用户输入一个数,如果输入无效或者除零,会触发相应的异常并进行处理。 二、常见的异常类型 Python内置了多种异常类型,每种类型对应不同的错误情况。...ZeroDivisionError: 除零错误 AttributeError: 属性错误 ImportError: 导入模块错误 了解这些异常类型有助于我们更准确地捕获和处理异常。...file_path = "example.txt" read_file(file_path) 在上面的例子中,我们尝试读取一个文件,如果文件不存在或发生其他I/O错误,会捕获相应的异常并进行处理。

    29210

    Python应该要会一点吧

    我用的是PyCharm,感觉还挺好用的,Community版本可在上图网址中免费下载、使用。...如果程序或模块包含多个函数,可使用两个空行将相邻的函数分开,这样将更容易知道前一个函数在什么地方结束,下一个函数从什么地方开始。...都会自动运行它 def __init__(self, name, age): #self会自动传递,我们不需要传递它 """初始化属性name和age""" self.name =...#如果try代码块中的代码运行起来没有问题,Python将跳过except代码块; #如果try代码块中的代码导致了错误,Python将查找这样的except代码块, #并运行其中的代码,即其中指定的错误与引发的错误相同...存储数据 用户关闭程序时,你几乎总是要保存他们提供的信息;一种简单的方式是使用模块json来存储数据。

    1.9K10

    python错误和异常

    二:异常     ①打印错误信息时,异常的类型作为异常的内置名显示,并以调用栈的形式显示具体信息     ②常见的异常:             NameError、             ZeroDivisionError...            IOError        输入输出错误             AttributeError    尝试访问未知的对象属性 三:异常处理     while True:...⑤如果一个异常没有与任何的except匹配,那么这个异常将会传递给上层的try中。     ⑥一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。     ...⑨try except 语句还有一个可选的else子句,如果使用这个子句,     那么必须放在所有的except子句之后。     这个子句将在try子句没有发生任何异常的时候执行....    finanlly:         print("dooo")     不管 try 子句里面有没有发生异常,finally 子句都会执行     如果一个异常在 try 子句里(或者在 except

    72910

    Python 进阶指南(编程轻松进阶):一、处理错误和寻求帮助

    如果帧摘要没有给你足够的信息来找出错误,或者如果错误的真正原因在回溯没有显示的前一行,你将不得不用调试器逐步通过程序或者检查一些日志消息来找到原因。这可能需要很长时间。...如果没有这个小软件,你就只能被动的运行你的错误程序,阅读错误回溯,然后在你的源代码中找到一行来修复一个打字错误。如果您犯了多个错别字,这个运行-修复周期一次只能找到一个。...但是如果你的程序包含在一个文件中,把它发送给你的助手是一件简单的事情。正如下一节所讨论的,只需确保它的格式正确。...在 Python Selenium 模块中,一旦我有了一个WebElement对象,我就可以用get_attribute()获得它的任何属性值: foo = elem.get_attribute('href...我的问题是,我怎样才能得到一个元素所有属性的列表?好像没有get_attributes()或者get_attribute_names()的方法。

    1.2K30
    领券