day14-匿名函数、内置函数、异常处理

匿名函数

#匿名函数没有绑定名,使用一次即被回收,加括号即运行
#当把变量名赋给匿名函数时,匿名函数变成有名函数
res = (lambda x,y: x+y)(1,2)  #res = 3

匿名函数与内置函数联用

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000
}
print(f"max(salary_dict): {max(salary_dict)}")  #默认比较字典的key

def func(k):
    return salary_dict[k]
#将可迭代对象变成迭代器对象
#res=next(迭代器对象),将res当做参数传给key指定的函数,然后将该函数的返回值当做判断依据

#求最大值
print(f"max(salary_dict, key=func()): {max(salary_dict, key=func)}")
print(
    f"max(salary_dict, key=lambda name: salary_dict[name]): {max(salary_dict, key=lambda name: salary_dict[name])}")
# # key=func默认做的事情
# # 1. 循环遍历salary_dict,会取到所有的key值
# # 2. 然后把所有的key值依次丢入func中,返回薪资
# # 3. 通过返回的薪资排序,得到最大值



# 排序
print(  
    f"sorted(salary_dict, key=lambda name: salary_dict[name]): {sorted(salary_dict, key=lambda name: salary_dict[name])}")

map

#map(func, *iterl)  映射
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']

filter

#filter(function, iterable)  按条件筛选,返回一个迭代器,function也可以写None
name_list = ['nick', 'jason sb', 'tank sb', 'sean sb']

filter_res = filter(lambda name: name.endswith('sb'), name_list)
print(f"list(filter_res): {list(filter_res)}")

>>>
list(filter_res): ['jason sb', 'tank sb', 'sean sb']

内置函数

#  bytes(str, enconding)  解码字符,转成二进制(pycharm终端打印16进制)
#  bytes(str, encoding = 'utf-8')
#  str.encode(''utf-8)

#  chr()/ord()  参考Ascii码表,chr():数字转字符,ord()字符转数字

#  divmod(a, b)  返回元组(a//b, a%b)

#  enumerate(iterable)  返回带索引的迭代

#  eval(str)  将字符串转成对应数据类型,也可以返回字符串中的结果('3*7'->21)

#  hash(object)  返回对象object的hash值

#  abs(i)  返回绝对值

#  all(iterable)  可迭代对象内元素全为真,则返回真;*空元组、空列表返回值为True

#  any(iterable)  可迭代对象中有一元素为真,则为真;*空元组、空列表返回值为False

#  bin()/oct()/hex()  转二进制/八进制/十六进制

#  dir()  返回模块的所有功能

#  frozenset()  返回一个不可变集合(强制类型转换)

#  globals/locals  以字典形式返回所有全局/当前位置的变量

#  pow(x,y,z=1)  返回(x**y)%z

#  round(float,n=0)  返回浮点数的四舍五入值,n是舍入的小数位数,默认是0,即返回整数

#  slice(start, stop, step)  设置切片(print(lis[slice(1, 5, 1)]))

#  sum(iterable)  求和

#  __import__()  动态导入模块?

异常处理

while True:
    try:
        1/0
    except Exception as e:
        print(e)
        break

posted on 2019-09-25 15:38  shenblogs  阅读(128)  评论(0)    收藏  举报

导航