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]
  • 相关阅读:
    AdminLTE 3.0发布了
    .NET Core ORM 类库Petapoco中对分页Page添加Order By对查询的影响
    【译】ASP.NET Core在 .NET Core 3.1 Preview 1中的更新
    物品编码中心所说的包装指示符
    Entity Framework Core生成的存储过程在MySQL中需要进行处理及PMC中的常用命令
    Asp.Net Core Mvc Razor之RazorPage
    基于Asp.Net Core MVC和AdminLTE的响应式管理后台之侧边栏处理
    Qt的下载地址
    由于MicrosoftVisualStudio14.0DesignerShadowCache导致的一个异常问题
    Spring系列.事务管理原理简析
  • 原文地址:https://www.cnblogs.com/emilyliu/p/9043704.html
Copyright © 2011-2022 走看看