码迷,mamicode.com
首页 > 其他好文 > 详细

函数进阶 3------总结

时间:2019-09-25 18:46:54      阅读:93      评论:0      收藏:0      [点我收藏+]

标签:匿名函数   pytho   总结   处理   lam   代码   而不是   try   name   

匿名函数

有名函数:有名称的函数,比如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) # 报错

面向过程编程

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

面向编程的优缺点

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

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

为什么会报错

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

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

函数进阶 3------总结

标签:匿名函数   pytho   总结   处理   lam   代码   而不是   try   name   

原文地址:https://www.cnblogs.com/whkzm/p/11586614.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!