广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python错误+异常+模块总结
  • 665
分享到

Python错误+异常+模块总结

2024-04-02 19:04:59 665人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录错误和异常语法错误异常异常处理抛出异常模块前言: 本篇主要讲两方面,错误和异常以及模块。在编程时遇见错误信息在所难免,python中会也有很多种错误信息,常见的两种就是语法错误和

前言:

本篇主要讲两方面,错误和异常以及模块。在编程时遇见错误信息在所难免,python中会也有很多种错误信息,常见的两种就是语法错误和逻辑错误,逻辑错误的种类有很多,占据了异常中大部分位置,下面就开始介绍一下这两个概念的相关知识。

错误和异常

语法错误

语法错误英文表示为SyntaxError,后面会跟着一些关于错误的解释信息,方便你查找语句中的bug,如下:

In [5]: print('naitangmao)
  File "<iPython-input-5-d5b793a8884b>", line 1
    print('naitangmao)                  ^
SyntaxError: EOL while scanning string literal

语法错误顾名思义就是你的代码语句写错了,比如上面这个语句的错误就是少了一个引号。发生错误后,解释器会给出文件的名字和错误行号,以及在错误行下面有一个"^",这个提示你代码出错的位置,一般会位于箭头前面,这些提示会便于编写者尽快找出错误。

异常

有的时候一行代码在语法上可能没有什么错误,但是执行的时候解释器也会报红,这种错误信息可以称为异常,和语法错误相比,异常的种类更多也更加常见。

举两个简单的例子:

In [6]: print(1/0)
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-6-2fc232d1511a> in <module>
----> 1 print(1/0)
ZeroDivisionError: division by zero

都知道0是不能作为分母出现的,所以Python就会给出一个ZeroDivisionError,并提醒你这是一个零除错误。

In [9]: 1+'1'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-9-d3bd1e37a107> in <module>
----> 1 1+'1'
TypeError: unsupported operand type(s) for +: 'int' and 'str'

整形与字符串之间不存在加法运算,解释器分析出后会给出一个TypeError,这是一个类型错误,并且在后面给出错误的解释。

异常处理

对于Python解释器而言,如果一段程序中某个部分出现了异常,那么其后面的代码将不会被运行,但Python中有方法可以对异常进行处理,让异常不报红,进而帮助整个程序完成运行,这种行为称作捕获异常,以try ... except语句组合实现。

In [11]: a = 1;b = '2'
In [12]: try:
    ...:     print(a+b)
    ...: except TypeError:
    ...:     print('类型错误!')
类型错误!

捕获异常实现的过程:

  • 1.执行try和except关键字之间的部分
  • 2.如果没有异常发生,except子句在try语句执行完毕后就被忽略了。
  • 3.如果在 try 子句执行过程中发生了异常,那么该子句其余的部分就会被忽略。如果异常匹配于except关键字后面指定的异常类型,就执行对应的except子句。然后继续执行try/except语句之后的代码。
  • 4.如果发生了一个异常,在except子句中没有与之匹配的分支,它就会传递到上一级try语句中。如果最终仍找不到对应的处理语句,它就成为一个未处理异常,终止程序运行,显示提示信息。

为了避免第4条情况产生,在except语句中可以使用所有异常的父类Exception,这样就囊括了所有异常可能发生的状况:

In [15]: try:
    ...:     print(a+b)
    ...: except Exception as e:
    ...:     print(e)
unsupported operand type(s) for +: 'int' and 'str'

抛出异常

利用raise语句可以主动抛出一个异常,但抛出的异常必须是要继承于Exception的异常类或者异常示例。

In [16]: raise NameError('naitangmao')
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-b751158801b2> in <module>
----> 1 raise NameError('naitangmao')
NameError: naitangmao

除此上面介绍之外,用户还可以根据自己的需求自己定义异常,不再过多介绍,建议掌握的部分是每种异常出现的原因以及异常处理的方法。

模块

第二部分就是模块,我们有时可能会在不同文件之间利用同一个函数,笨一点的做法就是copy来copy去,Python提供了一个机制可以在将一个文件中的内容导入另一个文件中使用,这样的文件就可以称为模块,需要注意的是并不是任何一个文件都可以当做模块,而必须是包含Python定义和声明的文件。

举一个简单的小例子帮助理解上面这段话,首先可以创建一个odd_num.py文件,然后这个文件中只有一个函数,功能是实现过滤掉一个范围内的偶数:

In [18]: def odd(n):
    ...:     result = []
    ...:     for i in range(n):
    ...:         if i % 2 != 0:
    ...:             result.append(i)
    ...:     return result

然后我们可以在另一个文件中导入这个模块,如果我们想使用这个函数的话,就可以通过模块名.函数名的方法调用该函数,如下:

In [20]: import odd_num
In [21]: odd_num.odd(20)
Out[21]: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

如果你只想用一个模块中的某个子模块,那么在导入时就可以指明需要导入的部分,这样子模块就可以单独使用,不必在以模块名.函数名的形式:

In [22]: from odd_num import odd
In [23]: odd(20)
Out[23]: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]

如果你还想偷懒的话,可以利用'*'的形式导入,这种写法是导入一个模块中的所有子模块:

In [24]: from odd_num import *

这种方法往往是不被推荐的,因为会让代码的可读性变差。

如果你有很多自定义的模块,为了更加规范、易找,那么你就可以将这些模块存入一个"包"中,需要注意的是,这个包中比如要有一个名为__init__.py的文件,这个文件可以为空但必须存在,然后导入包中模块的方式就是包名.模块名

Python本身也有自带的模块库,有一部分模块是内置于解释器之中,然后用户可以直接访问这类模块的接口,很大程度上提高了效率,比如time、sys等等。如果你对于一个模块比较陌生,你可以利用dir()函数搜索某个模块的定义,返回的结果是一个列表,其中包括模块内的方法、可供调用的接口等等。

In [24]:dir(time)
Out[24]:['_STRUCT_TM_ITEMS', '__doc__', '__loader__','__name__','__package__','__spec__','altzone','asctime','ctime','daylight',
'get_clock_info','gmtime','localtime','mktime','monotonic','monotonic_ns','perf_counter','perf_counter_ns','process_time',
'process_time_ns','sleep','strftime','strptime','struct_time','thread_time','thread_time_ns','time','time_ns','timezone','tzname']

综上是对错误和异常、模块两方面常用知识的一些概括!

到此这篇关于Python错误+异常+模块总结的文章就介绍到这了,更多相关Python异常内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python错误+异常+模块总结

本文链接: https://www.lsjlt.com/news/117699.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python错误+异常+模块总结
    目录错误和异常语法错误异常异常处理抛出异常模块前言: 本篇主要讲两方面,错误和异常以及模块。在编程时遇见错误信息在所难免,Python中会也有很多种错误信息,常见的两种就是语法错误和...
    99+
    2022-11-11
  • Python错误和异常总结详细
    目录1、语法错误2、异常3、try...except...语句4、多个except子句5、try...except Exception as e语句6、try...except......
    99+
    2022-11-12
  • Python异常处理中容易犯得错误总结
    目录Python异常处理机制容易犯的错误1容易犯的错误2总结Python异常处理机制 如果try异常处理中存在finally,finally中的代码总会得到执行 下面例子只是作为演示,不用去纠结业务逻辑 容易犯的错...
    99+
    2022-06-02
    python 异常处理 python 异常处理错误
  • Python 错误和异常小结
    1.Python异常类 Python是面向对象语言,所以程序抛出的异常也是类。常见的Python异常有以下几个,大家只要大致扫一眼,有个映像,等到编程的时候,相信大家肯定会不只一次跟他们照面(除非你不用Python了)。异常描述NameEr...
    99+
    2023-01-31
    小结 异常 错误
  • python shutil模块总结
    shutil.copyfile(src,dst)复制文件,如果存在会覆盖copymode( src, dst)复制权限copystat(src, dst)复制访问时间和修改时间和权限copy(src, dst) 复制文件到一个目录copy2...
    99+
    2023-01-31
    模块 python shutil
  • Python日历模块总结
    calendar模块的函数都是日历相关的,提供了对日期的一些操作方法,和生成日历的方法.calendar模块中提供了三大类:    一、calendar.Calendar(firstweekday=0)  该类提供了许多生成器,如星期的生成...
    99+
    2023-01-31
    模块 日历 Python
  • Python中re模块的常用方法总结
    前言 正则表达式作为计算机科学的一个概念,通常被用来检索、替换那些符合某个规则的文本。正则表达式是对字符串操作的一种逻辑公式,用事先定义好的规则字符串对字符串进行过滤逻辑处理。 re...
    99+
    2022-11-12
  • pip 安装python模块常见错误
    1.报错:c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory     #include <ffi.h>                  ...
    99+
    2023-01-31
    模块 错误 常见
  • Python中re模块常用方法总结分析
    re.findall() 在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。 语法格式: re.findall(pattern, stri...
    99+
    2022-11-12
  • python 异常处理总结
    最近,做个小项目经常会遇到Python 的异常,让人非常头疼,故对异常进行整理,避免下次遇到异常不知所措,以下就是对Python 异常进行的整理。 1.Python异常类 ...
    99+
    2022-06-04
    异常 python
  • Python 标准异常总结
    Python标准异常总结 AssertionError 断言语句(assert)失败 AttributeError 尝试访问未知的对象属性 EOFError 用户输入文件末尾标志EOF(Ctrl+d) FloatingPointErr...
    99+
    2023-01-31
    异常 标准 Python
  • 常见的socket error错误总结
    常见的socket error错误总结如下:1. ConnectionRefusedError:连接被拒绝。可能是目标主机拒绝了连接...
    99+
    2023-08-24
    错误
  • Python常见异常处理总结
    目录异常处理介绍语法报错异常处理解决方法抛出异常自定义异常其他内置函数总结异常处理介绍 在实际的开发中,我们经常遇到一些报错的例子,在pycharm的显示页面下,当我们看到一串串的红...
    99+
    2022-11-11
  • Python 常用内置模块超详细梳理总结
    目录time模块time.sleep()time.time()time.localtime()time.strftime()datetime()random模块random.rand...
    99+
    2022-11-13
  • Python的functools模块使用总结
    本篇文章给大家带来了关于Python的相关知识,主要介绍了Python的functools模块使用及说明,具有很好的参考价值,下面一起来看一下,希望对大家有帮助。【相关推荐:Python3视频教程 】partial用于创建一个偏函数,将默认...
    99+
    2022-08-08
    python
  • linux安装oracle常见错误 总结
    PS:新手,没装过数据库,各种错误基本都碰上了。。。血泪史1,打开11.2.0.3安装脚本报错,查看日志。造成错误的原因可能是dns没有返回服务名的IP,可能是hosts原因   经查看...
    99+
    2022-10-18
  • python错误和异常
    一:语法错误syntax errors        熟悉语法!二:异常    ①打印错误信息时,异常的类型作为异常的内置名显示,并以调用栈的形式显示具体信息    ②常见的异常:            NameError、       ...
    99+
    2023-01-30
    异常 错误 python
  • Python中的time模块与datetime模块用法总结
    time模块 time模块是包含各方面对时间操作的函数. 尽管这些常常有效但不是所有方法在任意平台中有效. time用struct_time表示时间 import time # time.struct...
    99+
    2022-06-04
    模块 Python time
  • Python基础中所出现的异常报错总结
    今天我们来探索python中大部分的异常报错 首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等。 打个比方很多公司年终送苹果笔记本,你程序...
    99+
    2022-06-04
    报错 异常 基础
  • Python基础之logging模块知识总结
    目录前言一、日志级别二、basicConfig三、日志写文件四、traceback记录前言 logging模块是Python内置的标准模块,主要用于输出脚本运行日志,可以设置输出日志的等级、日志保存路径等。 ...
    99+
    2022-06-02
    Python logging模块 python常用模块
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作