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)
输出结果为:
[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]