python判断一个数是否为素数输出yesno,python输入一个自然数判断是否为素数
1.1.反常的概念
如果python解释器在程序运行时遇到错误,程序将停止运行并显示错误消息。这是个例外。
在停止程序并显示错误信息后,这种行为通常被称为引发异常。
程序开发时,很难覆盖所有的特殊情况,但异常捕获可以集中处理紧急情况,保证程序的稳定性和健壮性。
一个代码:
Num=int(输入(请输入“数字:”))
打印(你好))。
如果输入一个非数字,输出如下。
请输入号码:s。
跟踪(mostrecentcalllast):
中文件“c:/users/administrator/pycharmprojects/untitled 16/ex . py”的第6行
Num=int (enter(请输入一个数字:)
值错误:invalidliteralforint(基数为10:“s
1.出现了一个错误。2.程序结束- hello没有输出。
1.2.捕捉异常
1.2.1.简单的catch异常语法
在程序开发中,如果不知道具体代码的执行是否正确,可以添加try来捕捉异常。
捕捉异常最常用的语法格式:
尝试:
要执行的代码
除了:
错误的处理
试试,把要试的代码写在下面,不知道能不能正常运行。
如果except不为,请在下面写下失败的代码。
简单的异常捕捉练习——用户必须输入一个整数。
尝试:
#要求用户输入数字
Num=int(输入(请输入“数字:”))
除了:
打印(“请输入正确的数字”)
打印(你好))。
输入一个非数字:
请输入一个数字:r
请输入正确的号码。
你好
程序没有结束,它输出了hello。
1.2.2.错误类型捕获
如果在程序运行时可能会遇到不同类型的异常,并且需要对不同类型的异常做出不同的响应,那么就必须捕捉错误类型。
语法如下:
尝试:
#要执行的代码
传球
错误类型1除外:
#对错误类型1进行相应的代码处理。
传球
除了(错误类型2,错误类型3):
#对错误类型2和3进行相应的代码处理。
传球
例外结果除外:
打印((未知错误%s%结果)))))))))。
当python解释器抛出异常时,错误消息最后一行的第一个词是错误类型。
异常捕捉练习-要求用户输入一个整数。
要求
1.提示用户输入一个整数
2.8除以用户输入的整数。
尝试:
Num=int (enter(请输入一个整数:)
结果=8/数量
是打印(结果)
除了值错误:
打印(“请输入正确的整数”)
除了ZeroDivisionError:
打印(除了0错误)))
捕捉未知错误
在开发过程中,很难预先判断所有可能的错误。
为了防止python解释器抛出异常并退出程序,添加另一个except。
语法如下:
例外结果除外:
打印((未知错误%s%结果)))))))))。
1.2.3.异常捕获的完整语法
在实际开发中,为了处理复杂的异常,完整的异常语法如下:
提示:
对于完整语法的应用,在后续的学习中结合实际情况可以更好的理解。
现在想象一下这个语法结构。
尝试:
#要执行的代码
传球
错误类型1除外:
#对错误类型1进行相应的代码处理。
传球
错误类型2除外:
#对错误类型2进行相应的代码处理。
传球
除了(错误类型3,错误类型4):
#对错误类型3和4进行相应的代码处理。
传球
例外结果除外:
#打印错误消息
是打印(结果)
否则:
/p #将无例外执行的代码
及格
最后:
#无论是否存在异常都将执行的代码
打印(“无论有无异常都将执行的代码”)
只有在没有异常时才会执行的Else代码。
最后,不管有没有异常都要执行的代码。
上一个演练的完整异常捕获的代码如下:
尝试:
Num=int(input(请输入整数:))
结果=8 /数量
打印(结果)
除了值错误:
打印(“请输入正确的整数”)
除了ZeroDivisionError:
打印(“除以0错误”)
例外结果除外:
打印(“未知错误% s“%结果”)
否则:
打印(“正常执行”)
最后:
Print(执行完成,但不保证正确)
1.3.异常处理
异常传递——当一个函数/方法的执行过程中出现异常时,该异常将被传递给该函数/方法的调用方。
如果它被传递给主程序,程序将被终止而不进行异常处理。
提示:
在开发过程中,异常捕捉可以添加到主函数中。
在main函数中调用的其他函数,只要有异常就会传递给main函数的异常捕获。
这样就不需要在代码中添加大量的异常陷阱,可以保证代码的症结所在。
需求:
1.定义函数demo1()来提示用户输入一个整数并返回它。
2.定义函数demo2()并调用demo1()
3.在主程序中调用demo2()
def演示1():
Return int(input(请输入整数:))
def demo2():
返回演示1()
尝试:
打印(demo2())
除了值错误:
打印(“请输入正确的整数”)
例外结果除外:
打印(“未知错误% s“%结果”)
1.4.引发异常
1.4.1.应用场景
在开发中,python解释器可以在代码执行错误时抛出异常,也可以根据应用的具体业务需求主动抛出异常。
例子
提示用户输入密码。如果长度小于8,则引发异常。
注意
当前函数只负责提示用户名输入密码。如果密码长度不正确,需要其他函数进行额外处理。
因此,异常可能会被其他需要处理的函数抛出和捕获。
1.4.2.抛出异常
python中提供了一个异常异常类
在开发中,如果您想在满足特定业务需求时抛出异常,您可以:
1.创建一个异常对象。
2.使用raise关键字抛出一个对象。
要求
定义input_password函数来提示用户输入密码。
如果用户输入长度为8,则会引发异常。
如果用户输入长度=8,则返回输入密码。
定义输入密码():
#1\.提示用户输入密码
Pwd=input(请输入密码:)
#2\.判断密码长度,如果长度=8,返回用户输入的密码。
如果len(pwd)=8:
返回密码
#3\.密码不够长,所以需要抛出一个异常。
#1创建一个异常对象——使用异常的错误消息字符串作为参数。
Ex=异常(“密码长度不够”)
#2抛出一个异常对象
提高ex
尝试:
用户密码=输入密码()
打印(用户密码)
例外结果除外:
打印(“发现错误:% s“%结果”)
1.5.自定义异常
自定义异常主要是自定义异常类,分门别类管理。用户定义的异常需要继承异常父类异常。
ClassException (Exception): #让MyException类继承exception。
def __init__(自己,姓名,年龄):
self.name=name
年龄=年龄
尝试:
#知识点:主动抛出异常就是实例化一个异常类。
RaiseMyException(张三,19) #实例化一个异常,实例化时需要传递参数。
除了MyException as obj: #这里是一个包。
Print(obj.age,obj.name) #捕获MyException类携带的信息。
除了Exception as obj:# universal capture,上一个可能没有被捕获,这里添加Excetpin。
打印(对象)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。