Pyhton异常的练习题

练习题:

1. 简单使用异常处理,输入两个数a,b , 其中b必须为零,进行a/b的算式,让你的程序抛出“被除数不能为零”的异常。

try:
    x = int(input('请输入第一个数'))
    y = int(input('请输入第二个数字'))
    print(x / y)
    y = x + '5'
    print(x)
    s = input('输入一个数')
except (ZeroDivisionError,TypeError) as e:
    print(e)

2.编写一个计算减法的方法,自己输入两个数,当第一个数小于第二个数时,抛出“被减数不能小于减数"的异常。

def jianfa(a,b):
    if a<b:
        raise BaseException('被减数不能小于减数')
        #return 0
    else:
        return a-b
try:
    a=int(input())
    b=int(input())
    print(jianfa(a, b))
    print("没遇到自己定义的错误") #不打印
except:
    print("被减数不能小于减数")
finally:
    print("OK")

  1. 使用异常处理try … except… 打开一个不存在的文件。
try:
    with open('non_exist.txt',mode='r') as f1:
        print('file opend!')
        f1.close()
except:
    print('file is not exist!')
print('DONE!')

  1. 使用异常处理猜数字游戏,输入非整数,抛出异常。
    题目就是使用一个随机函数得到一个整数,然后自己输入一个整数,使用异常判断你输入的整数是比随机数大时输出“you have big number!”,如果小则输出“you have small number!”,直到找出那个随机数并输出bingo!。
import random
flag = False
while(flag == False):
    result = random.randint(1, 5)
    try:
        number = int(input('input you number:'))
        if number == result:
            print('bingo!')
            flag = True
        elif number > result:
            print('you have big number!')
        else:
            print('you have small number!')
    except:
        print('please input integer!')

  1. 定义一个函数func(lis) lis:为列表,lis= [133, 88, 22, 35, 232, 66, 11, 44,56],
    返回列表小于100,且为偶数的数。输出列表
def func(lis):
    lst = []
    for i in lis:
        if i < 100 and i % 2 == 0:
            lst.append(i)
    return lst

lis = [133, 88, 22, 35, 232, 66, 11, 44,56]
print(func(lis))