在python程序中我们有时会遇到错误或者“异常”,这往往意味着整个程序面临崩溃。
我们并不希望在运行过程中突然出现此类状况,而是希望能够知道错误类型,并能够及时处理它,然后继续运行。
今天我们介绍一下如何用try......except......通过判断错误类型,进行及时处理,来保证程序正常运行。
这里我们通过一个简单的小例子来理解:
题目:写一个函数,判断输入值(num)的奇偶性,如果是奇数则返回(3*num+1),偶数则返回(num//2),直到返回值为1,程序结束。要求对输入的内容进行验证。
这个过程中为避免输入的内容不是整数,引起错误,我们需要对输入的内容进行错误处理,具体代码如下:
def collatz(number):
if number%2==0:
#print(number//2)
return number//2
elif number%2==1:
#print(3*number+1)
return 3*number+1
while 1:
try:
num=int(input())
collatz(num)
if collatz(num)==1:
break
except ValueError:
print('请输入整数')
print(collatz(num))
这里定义了一个函数collatz()来判断输入值的奇偶性(该题目暂时不考虑输入值为0的情况);然后通过使用 while 和 if 来实现“直到返回值为1”结束。
我们看运行结果:
try......except......异常处理,程序获取到异常后直接跳到 except,所以 except 放在一次循环结束的位置,避免出现变量未定义之类的错误;try 放在获取输入值语句之前即可。
小小的案例希望能够带给编程中的你小小的帮助,让我们一起进步,欢迎交流指教。