[python] 异常
程序员文章站
2022-08-17 13:12:41
异常:写python代码时,语法没错,但运行时引发了错误,比如除以0,会提示xxxxError,说明是什么类型的错误。'2'+1-------------------------------------'''TypeError Traceback (most recent call last) in ----> 1 '2'+...
异常:
写python代码时,语法没错,但运行时引发了错误,比如除以0,会提示xxxxError
,说明是什么类型的错误。
'2'+1
-------------------------------------
'''
TypeError Traceback (most recent call last)
<ipython-input-21-57885c8e36f5> in <module>
----> 1 '2'+1
TypeError: can only concatenate str (not "int") to str
'''
- 处理异常:
try-except
语句
while True:
try:
a=int(input("请输入一个数字:"))
break
except:
print("输入不是一个数字,请重新输入")
---------------------------------------------
请输入一个数字:a
输入不是一个数字,请重新输入
请输入一个数字:-
输入不是一个数字,请重新输入
请输入一个数字:1
except
后可加错误类型:
while True:
try:
a=int(input("请输入一个非0数字:"))
print(5/a)
break
except ValueError:
print("输入不是一个非数字,请重新输入")
----------------------------------------------
请输入一个非0数字:a
输入不是一个非数字,请重新输入
请输入一个非0数字:0
ZeroDivisionError Traceback (most recent call last)
<ipython-input-2-3dcf74d32fef> in <module>
3 try:
4 a=int(input("请输入一个非0数字:"))
----> 5 print(5/a)
6 break
7 except ValueError:
ZeroDivisionError: division by zero
except
后加多种错误类型:
while True:
try:
a=int(input("请输入一个非0数字:"))
print(5/a)
break
except (ValueError,ZeroDivisionError):#将多个异常封装成一个元组,同时处理
print("输入不是一个非0数字,请重新输入")
---------------------------------------------
请输入一个非0数字:a
输入不是一个非数字,请重新输入
请输入一个非0数字:0
输入不是一个非数字,请重新输入
请输入一个非0数字:1
5.0
try
后跟多条except
:但最多只执行一个
while True:
try:
a=int(input("请输入一个非0数字:"))
print(5/a)
break
except ValueError:
print("输入不是一个数字,请重新输入")
except ZeroDivisionError:
print("输入是0,请重新输入")
-----------------------------------------------
请输入一个非0数字:a
输入不是一个数字,请重新输入
请输入一个非0数字:0
输入是0,请重新输入
请输入一个非0数字:2
2.5
try-except
后可跟else
:
要求放在所有的except后,在try不引发异常时执行
while True:
try:
a=int(input("请输入一个非0数字:"))
b=5/a
except ValueError:
print("输入不是一个数字,请重新输入")
except ZeroDivisionError:
print("输入是0,请重新输入")
else:
print(b)
break
-----------------------------------------------
请输入一个非0数字:a
输入不是一个数字,请重新输入
请输入一个非0数字:0
输入是0,请重新输入
请输入一个非0数字:2
2.5
- 利用
as
打印错误类型:
while True:
try:
a=int(input("请输入一个非0数字:"))
b=5/a
except ValueError as err:
print(err)
print("输入不是一个数字,请重新输入")
except ZeroDivisionError as err:
print(err)
print("输入是0,请重新输入")
else:
print(b)
break
----------------------------------------
请输入一个非0数字:a
invalid literal for int() with base 10: 'a'
输入不是一个数字,请重新输入
请输入一个非0数字:0
division by zero
输入是0,请重新输入
请输入一个非0数字:1
5.0
本文地址:https://blog.csdn.net/weixin_46975503/article/details/107319807
上一篇: 索尼Xperia 10 Ⅲ渲染图曝光:带鱼屏 单手操作无压力
下一篇: 单调栈