zoukankan      html  css  js  c++  java
  • 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)

    输出结果为:

    [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]
  • 相关阅读:
    Codechef Observing the Tree
    bzoj 1367: [Baltic2004]sequence
    bzoj 2375: 疯狂的涂色
    bzoj 1455: 罗马游戏
    codevs 1029 遍历问题
    HNOI2004 宠物收养所 (Treap)
    [ZJOI2007] 报表统计
    bzoj 3261: 最大异或和 (可持久化trie树)
    codevs 1001 舒适的路线
    Codechef Dynamic Trees and Queries
  • 原文地址:https://www.cnblogs.com/emilyliu/p/9043704.html
Copyright © 2011-2022 走看看