Python:面对不按套路出牌的用户,要用try、except、else组合拳


Python:面对不按套路出牌的用户,要用try、except、else组合拳

本篇概要:业余码农学Python-18,本篇重点总结保留字try、except、else、finally的使用,通过4个保留字的组合使用,进行程序异常的捕捉与处理。

一、不按套路出牌的用户

前面我尝试编写了一些Pyhon实例,今天突然心血来潮,翻出之前的实例,来了一次突(zuo)破( si)的尝试——程序运行后,不按照要求输入,如:

  • “请输入带有符号的温度【摄氏度用C,华氏温度用F】:”我输入了80A;
  • “请输入金额【以”RMB”或”USD”结尾】:”我输入2000元;
  • “请输入数字:”我输入汉字;“请输入整数”我输入字母……

结果,悲剧了!

Python:面对不按套路出牌的用户,要用try、except、else组合拳


Python:面对不按套路出牌的用户,要用try、except、else组合拳

所有之前我写的代码都哭了:“你是个坏人,我要罢工、不跟你玩了。”

面对不按套路出牌的用户,咋办?

Python提供了一套组合拳,那就是保留字try、except、else、finally组合。

二、运用Python保留字try、except、else、finally,捕捉程序异常

  • 1、异常捕捉与处理的基本套路(try + except组合)

#异常捕捉与处理的基本套路

try:

except : #异常类型可以缺省,即任意一种异常出现均执行语句块2

我们举个实例:

#计算输入数字的2倍值

n = eval(input("请输入一个数字:"))

m=n*2

print(m)

当我们输入数字时,程序是可以正常运行,并输出用户所输入数字的2倍的值.

Python:面对不按套路出牌的用户,要用try、except、else组合拳

但当我们输入的不是数字时,比如我们输入字母a,程序则会报错。

Python:面对不按套路出牌的用户,要用try、except、else组合拳

下面我们加入try + except 组合,捕捉输入数据的异常并给用户一个提示。


#异常捕捉与处理的基本套路

try:

n = eval(input("请输入一个数字:"))

m=n*2

print(m)

except:

print("你输入的不是一个数字")

再次输入一个非数字的值a,则程序输出提示“你输入的不是一个数字”。

Python:面对不按套路出牌的用户,要用try、except、else组合拳
  • 2、异常捕捉与处理的组合拳(try、except、else及finally组合)

用法如下

#异常捕捉处理组合拳

try:

except:

#出现异常执行语句块2

else:

#只有在不发生异常的时候才执行语句块3

finally:

#无论是否出现异常,语句块4都会执行

程序则会按照以下规则执行:

Python:面对不按套路出牌的用户,要用try、except、else组合拳

继续优化前面的实例

#异常捕捉与处理组合拳

try:

n = eval(input("请输入一个数字:"))

m=n*2

except:

print("你输入的不是一个数字")

else:

print("{}的2倍为{}".format(n,m))

finally:

print("异常捕捉处理组合拳结束")

运行结果完美达到预期。

输入数字20,程序运行结果显示:

Python:面对不按套路出牌的用户,要用try、except、else组合拳

输入非数字a,程序运行结果显示:

Python:面对不按套路出牌的用户,要用try、except、else组合拳

因为初学,以上仅是异常捕捉与处理的基本使用及实例。更加深入的研究及使用,还要待后面的努力学习。

【end】


分享到:


相關文章: