【Python进阶(一)】——异常与错误

简介: 【Python进阶(一)】——异常与错误

【Python进阶(一)】——异常与错误,建议收藏!

该篇文章主要演示Python中的异常与错误,包括try/except/finally的使用;异常信息显示模式;断言等内容。

1 try/except/finally

  运行程序:

try: #可能发生异常的语句
    f=open('myfile.txt','w')
    while True:
        s=input("请输入Q")
        if s.upper()=='Q':break
        f.write(s+'\n')
except KeyboardInterrupt: #发生此异常时,要执行的语句;except:发生其他异常时要执行的语句;else:无异常时,要执行的语句
    print("程序中断")
finally:
    f.close()#不管是否发生异常,都要执行的语句

  运行结果:

请输入Qq

2 异常信息的显示模式

2.1 异常信息显示模式1:Plain

  运行程序:

%xmode Plain  #异常信息显示模式1:Plain
x=1
x1

  运行结果:

Exception reporting mode: Plain
Traceback (most recent call last):
  File "<ipython-input-37-d5101d382d83>", line 3, in <module>
    x1
NameError: name 'x1' is not defined

2.2 异常信息显示模式1:Plai2

  运行程序:

%xmode Verbose #异常信息显示模式2:Verbose
x=1
x1

  运行结果:

Traceback (most recent call last):
  File "<ipython-input-38-443ceef4ba36>", line 3, in <module>
    x1
NameError: name 'x1' is not defined

2.3 异常信息显示模式3:Context(默认值)

  运行程序:

%xmode Context  #异常信息显示模式3:Context(默认值)
x=1
x1

  运行结果:

Traceback (most recent call last):
  File "<ipython-input-39-d2b0226b5ef6>", line 3, in <module>
    x1
NameError: name 'x1' is not defined

3 断言

  运行程序:

##断言主要用于“设置检查点”
a=1
b=2
assert b!=0 , "分母不能等于0"  #assert后未检查条件,当此条件为假时,抛出断言,条件为真,则不能抛出AssertionError
a=1
b=0
assert b!=0 , "分母不能等于0"  #条件为假,抛出AssertionError

  运行结果:

Traceback (most recent call last):
  File "<ipython-input-44-b71c74981dc7>", line 3, in <module>
    assert b!=0 , "分母不能等于0"
AssertionError: 分母不能等于0


相关文章
|
3天前
|
人工智能 数据可视化 搜索推荐
Python异常模块与包
Python异常模块与包
|
3月前
|
数据采集 存储 Java
如何让Python爬虫在遇到异常时继续运行
构建健壮Python爬虫涉及异常处理、代理IP和多线程。通过try/except捕获异常,保证程序在遇到问题时能继续运行。使用代理IP(如亿牛云)防止被目标网站封锁,多线程提升抓取效率。示例代码展示了如何配置代理,设置User-Agent,以及使用SQLite存储数据。通过`fetch_url`函数和`ThreadPoolExecutor`实现抓取与重试机制。
如何让Python爬虫在遇到异常时继续运行
|
2月前
|
API C++ Python
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
|
3月前
|
数据采集 网络协议 数据挖掘
网络爬虫进阶之路:深入理解HTTP协议,用Python urllib解锁新技能
【7月更文挑战第30天】网络爬虫是数据分析和信息聚合的关键工具。深入理解HTTP协议及掌握Python的urllib库对于高效爬虫开发至关重要。HTTP协议采用请求/响应模型,具有无状态性、支持多种请求方法和内容协商等特点。
39 3
|
3月前
|
机器学习/深度学习 运维 监控
使用Python实现深度学习模型:智能安防监控与异常检测
【7月更文挑战第26天】 使用Python实现深度学习模型:智能安防监控与异常检测
51 6
|
2月前
|
存储 Python
Python 中的用户定义异常
【8月更文挑战第23天】
21 0
|
3月前
|
网络协议 开发者 Python
网络编程小白秒变大咖!Python Socket基础与进阶教程,轻松上手无压力!
【7月更文挑战第25天】在网络技术快速发展的背景下, Python因其简洁的语法和强大的库支持成为学习网络编程的理想选择。
58 5
|
2月前
|
前端开发 JavaScript Java
Python错误、异常和模块
本文详细介绍了Python编程中的错误和异常处理以及模块的使用方法。语法错误如遗漏引号会导致`SyntaxError`,而运行时错误如除以零则会产生`ZeroDivisionError`等异常。文章通过实例展示了如何使用`try...except`结构来捕获并处理异常,确保程序的健壮性。此外,还介绍了如何自定义异常以及主动抛出异常的方法。在模块方面,文章解释了如何创建和导入模块以重用代码,并展示了不同导入方式的特点,包括导入单个函数、全部内容等。最后提到了Python标准库的使用和查询模块内容的方法。
|
3月前
|
机器学习/深度学习 数据采集 算法
Python编程语言进阶学习:深入探索与高级应用
【7月更文挑战第23天】Python的进阶学习是一个不断探索和实践的过程。通过深入学习高级数据结构、面向对象编程、并发编程、性能优化以及在实际项目中的应用,你将能够更加熟练地运用Python解决复杂问题,并在编程道路上走得更远。记住,理论知识只是基础,真正的成长来自于不断的实践和反思。
|
3月前
|
网络协议 Python
网络世界的建筑师:Python Socket编程基础与进阶,构建你的网络帝国!
【7月更文挑战第26天】在网络的数字宇宙中,Python Socket编程是开启网络世界大门的钥匙。本指南将引领你从基础到实战,成为网络世界的建筑师。
54 2
下一篇
无影云桌面