zoukankan      html  css  js  c++  java
  • 函数进阶 3------总结

    匿名函数

    有名函数:有名称的函数,比如f1(),

    匿名函数:没有名称,就没有办法直接利用名称调用,只能和某些方法联用。

    常与之连用的函数有:max/min/filter/sorted/map。

    1.max 取最大值。

    salary_dict= {
        'nick':3000,
        'jason':10000,
        'tank':5000,
        'sean':2000,
    }
    print(f"max(salary_dict,key=labda name:salary_dict[name]):{max(salary_dict,key=lambda name:salary_dict[name])}")
    
    注:max在字典中使用的时候默认取出的是key的值,
    

    2.min 取最小值。

    方法与取最大最一样

    3.fileter 筛选

    list_res = [1,2,4,3,2,4,2,1,3,4,2,5]
    
    res = filter(lambda num:num > 3,list_res)
    
    print(list(res))
    
    #输出为  [4, 4, 4, 5]
    
    #用法:lambda num:num > 3为需要执行的操作,list_res为需要执行的可迭代对象
        输出需要使用list生成一个列表
    

    4.sorted 排序

    list_name = [2,4,2,5,8,4,5,7,9,0,4,]
    
    res = sorted(list_name,reverse = False)
    
    print(res)
    
    # 输出结果为 [0, 2, 2, 4, 4, 4, 5, 5, 7, 8, 9]
    当输入的是True的时候表示的是反向排序,False是正向排序
    

    5.map 映射

    name_list = ['jason', 'tank', 'sean']
    
    res = map(lambda name: f"{name} sb", name_list)
    print(f"list(res): {list(res)}")
    
    #输出结果为:list(res): ['jason sb', 'tank sb', 'sean sb']
    

    内置函数

    内置函数又很多,但是需要使用的很少,因为有些已经有简单的方法处理了,所以在此处仅作了解。

    abs(x)             用于返回绝对值
    
    divmod(x,y)        函数中传入两个数字,返回的是x/y的一个结果的元组(商,余数)
    
    pow(x,y)           用于求x的y次方
    
    all(iterable)      函数中传入一个可迭代的对象,如果对象中的所有的数的bool值都为真才会返回True,不否则就返回Flase
    
    any(iterable)      函数中传入一个可迭代的对象,如果对象中有一个数的bool值为真就返回True,如果所有的数都为0,就返回Flase
    
    chr(x)             函数中传入一个ascii码,将ascii转换成对应的字符
    
    ord(x)             函数中传入一个字符,将字符转换为对应的ascii码
    
    

    异常处理

    当执行命令的时候,有时候会提示各种各种错误,这个时候接下来的命令就不会再执行,这个时候就需要有一个处理异常的方法。

    • 语法:

      try:
          code1
      except Exception as e:
          print(e) #可加可不加
          code2
      finally:   # 可加可不加
          code3
      
    • 就是当程序报了错,进行处理

    • 报错之后,不执行下面的代码

    • 异常捕捉只能捕捉逻辑错误

    • finally 方法的作用是无论你报不报错,都执行其缩进下的代码

      dic = {'a': 1}
      try:
          print(dic['b'])  # KeyError
          1 / int(num)  # 报错之后,不运行下面的代码
      
      except Exception as e:  # 万能异常,只要有错误,就捕捉
          print(e)  # e存储的是错误的内容,而不是错误的类型
          print('傻逼,不知道什么错误')
      finally:
          print('asdasf')
      
    • assert +条件 ( 断言 +条件) 现在这种方法已经被淘汰

      条件成立不报错,不成立报错

      num = input('num:')
      assert 1 == int(num)  
      
    • raise 主动报错误 (就是主动报错,没什么用处)

      x = 1
      raise(x = 1) # 报错
      

    面向过程编程

    面向过程编程的核心是编程,简单的解释就是类似于流水线,一步一步的进行下去。

    面向编程的优缺点

    优点:按照顺序一步一步向下走,逻辑非常清晰

    缺点:因为是上下相关联,上一步错了,下一步就也会跟着一起错。

    为什么会报错

    在编程的过程中,编程的逻辑发生了错误,编写的代码就不会按照

    正确的逻辑来运行了,这个时候就不能接受到正确的结果,所以再排错的过程中将需要打印的结果一步一步打印,看看是哪一步打印的时候出现了错误,如果是正确的结果,就是是按照正确的逻辑运算出正确的结果。

  • 相关阅读:
    CPU时间戳获取
    练手记录
    Fibonacci 2
    gjd
    hdu 5785 Interesting(manacher+前缀和)
    hdu 5782 Cycle(KMP+hash)
    hdu 5741 Helter Skelter(扫描线)
    Educational Codeforces Round 25 G. Tree Queries
    Educational Codeforces Round 25 F. String Compression(kmp+dp)
    Codeforces Round #423 (Div. 2) D. High Load(构造题)
  • 原文地址:https://www.cnblogs.com/whkzm/p/11586614.html
Copyright © 2011-2022 走看看