首页 > 编程语言 >python基础学习-异常

python基础学习-异常

时间:2023-06-04 11:45:58浏览次数:34  
标签:try python 捕获 except 学习 num print 异常

"""
异常:

捕获异常:
基本语法:
try:
可能发生错误的代码
except:
出现异常执行代码
else:
没异常,执行
finally:
无论有无异常,都执行

异常具有传递性

"""

# 捕获指定异常
try:
print(name)
except NameError as e:
print("出现未定义异常")
print(e)

# 捕获多个异常
try:
print(name)
1/0
except (NameError, ZeroDivisionError) as e:
print("出现未定义异常 或 除0异常")
print(e)

# 捕获所有异常
try:
print(name)
1/0
except Exception as e:
print("出现未定义异常 或 除0异常")
print(e)

可以使用raise关键字来引发异常(抛出异常对象),而调用者可以通过try...except...结构来捕获并处理异常。
例如在函数中,当函数的执行条件不满足时,可以使用抛出异常的方式来告知调用者问题的所在,而调用者可以通过捕获处理异常来使得代码从异常中恢复,定义异常和抛出异常的代码如下所示。
class InputError(ValueError):
    """自定义异常类型"""
    pass


def fac(num):
    """求阶乘"""
    if num < 0:
        raise InputError('只能计算非负整数的阶乘')
    if num in (0, 1):
        return 1
    return num * fac(num - 1)

  调用求阶乘的函数fac,通过try...except...结构捕获输入错误的异常并打印异常对象(显示异常信息),如果输入正确就计算阶乘并结束程序。

flag = True
while flag:
    num = int(input('n = '))
    try:
        print(f'{num}! = {fac(num)}')
        flag = False
    except InputError as err:
        print(err)

标签:try,python,捕获,except,学习,num,print,异常
From: https://www.cnblogs.com/ashuai123/p/17455416.html

相关文章

  • gitignore规则再学习
    gitignore规则之前就学习过,不过到现在还是一知半解,昨天又重新学习了一下,并做了一些实验,似乎又明白了,所以记录下来,以备后续查阅.首先,.gitignore文件所在的目录作为匹配的根目录对于每一个目录或者文件全路径,进行匹配规则验证如下所示的目录结构:要匹配的文件......
  • python基础学习-容器
    """容器的通用功能:len(容器)统计容器元素个数max(容器)统计最大元素min(容器)统计最小元素类型转换list(容器)给定容器转换为liststr(容器)给定容器转换为strtuple(容器)给定容器转换为tupleset(容器)给定容器转换set通用排序:sorted(容器,[reverse=True])默......
  • python练习-简单计算器
    #*_*coding:utf8*_*#简单计算器importtkinterfromfunctoolsimportpartial#按钮输入调用defget_input(entry1,argu):#从entry窗口展示中获取输入的内容input_data=entry1.get()#合法运算符:+-*/--**//+-#------------输入合法性判断的......
  • babylon.js 学习笔记(8)
    接上回继续,现在的村庄已经有点象样了,但是远处的背景仍比较单调(如下图),今天来学习如何处理天空背景。babylon.js中,把整个空间假象成一个巨大的立方体(称为SkyBox),然后依次给立方体的6个面,贴上天空的背景图(如下图)在代码中只要指定这6张图的rootUrl即可,babylon.js会自动拼上一......
  • Python中解包与打包 */**
    解包打包本质:解包的逆向操作打包是将多个值组合成一个可迭代对象的过程。常见的打包方式是使用元组或列表或字典。打包操作使用=符号进行赋值,将多个值组合成一个可迭代对象。......
  • 为teamcity的代码语法检查工具pyflakes增加支持python2和python3
    TeamCity和pyflakesTeamCity是一款由JetBrains公司开发的持续集成和部署工具,它提供了丰富的功能来帮助团队协作进行软件开发。其中包括代码检查、自动化构建、测试运行、版本控制等多个方面。在我们团队中使用TeamCity进行配合pyflakes代码检查,我们需要升级pyflakes到支持python......
  • 安全测试--fiddler工具学习和使用
    平常功能测试或者在进行安全相关测试时,会抓一些接口数据,来进行辅助测试。使用较多的抓包工具是fiddle,所以这里介绍了一下fiddler原理,并介绍一些工作上经常使用的fiddler功能(工具栏、抓https的设置、过滤器、重放、段点、会话保存等功能,手机抓包的功能在另外一篇随笔里)。......
  • python——pandas数据分析(表格处理)工具实现Apriori算法
    pandas是基于NumPy的一种工具,名字很卡哇伊,来源是由“Paneldata”(面板数据,一个计量经济学名词)两个单词拼成的。pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。主要应用于处理大型数据集。数据处理速度算是最大的特色,剩下的就是个python版的exc......
  • 06web安全学习---信息搜集(The Soul of penetration test)
    声明学习网络安全,必须要坚守一个原则,那就是一定一定一定要遵守《中华人民共和国网络安全法》,做一个遵纪守法的好公民,不要利用技术做一些违法犯罪的事情,否则后果自负,请切记!!!一、为什么要信息收集(踩点)目的就是找到薄弱点进行attack;二、信息收集方向三、巧用网络空间搜索引擎 四、信息......
  • linux 性能自我学习 ———— cpu 快速定位问题 [六]
    前言主要介绍一下cpu如何快速定位问题。正文cpu的一些性能指标:1.cpu使用率cpu使用率描述了非空闲时间占总cpu时间的百分比,根据cpu上运行任务的不同,又被分为用户cpu、系统cpu、i/o等待cpu、软中断、硬中断。用户cpu使用率,包括用户态cpu使用率,和低优先级用户态cpu使用......