python学习(二十五)异常处理及内置函数补充

1、异常处理

first=input('请输入除数:')
second=input('请输入被除数:')
first=int(first)
second=int(second)
res=first/second
print(res)

这样一段代码,如果被除数输入了0,那么整个程序就会报错,这个时候我们可以进行异常处理,使程序不至于直接报错

方式一:

first=input('请输入除数:')
second=input('请输入被除数:')

try:
    first=int(first)
    second=int(second)
    res=first/second
except ValueError as e:#e代表错误信息,如果上面两行代码出现了ValueError这个错
    print(e)
    print('请输入整数')
except ZeroDivisionError as e:
    print('除数不能为0')

这种方式每一种异常都要单独写,异常信息会准确具体,但是因为每个都要单独写,比较麻烦

方式二:

first=input('请输入除数:')
second=input('请输入被除数:')

try:
    first=int(first)
    second=int(second)
    res=first/second
except Exception as e:
    print(e)
    print('出错了')   #所有异常都可以捕捉
else:
    print('没有出错')
finally:              #不管出错或者没有出错都会执行
    print('我是fianlly')

finally 后面的内容是不管有没有异常都会执行的

2、内置函数补充

1)zip ()

把多个list,合并到一起

l1=['a','b','c']
l2=[1,2,3]for a,b in zip(l1,l2):
    print(a,b)

输出结果为

a 1
b 2
c 3

如果两个列表个数不一样,也可以循环,以数量少的为准

l1=['a','b','c','f','g']
l2=[1,2,3]
for a,b in zip(l1,l2):
    print(a,b) 

输出结果与上面的输出结果一样

2)map 循环调用函数

def my(num):
    return str(num)
lis=[1,2,3,4,5,6,7,8,9]
res=list(map(my,lis))
print(res)

输出结果为:

['1', '2', '3', '4', '5', '6', '7', '8', '9']

3)filter 循环调用函数,过滤

def even(num):
    if num%2==0:
        return True
    return False
lis = [1, 2, 3, 4, 5, 6, 7, 8, 9]
res=list(filter(even,lis)) #filter只保留返回为真的数据
print(res)

输出结果为:

扫描二维码关注公众号,回复: 877420 查看本文章
[2, 4, 6, 8]

map只是循环调用函数,函数返回什么就保存什么

def even(num):
    if num%2==0:
        return True
    return False
lis = [1, 2, 3, 4, 5, 6, 7, 8, 9]
res1=list(map(even,lis))   #map只循环调用函数,函数返回什么就保存什么
print(res1)

输出结果为:

[False, True, False, True, False, True, False, True, False]

猜你喜欢

转载自www.cnblogs.com/emilyliu/p/9043704.html