标签:匿名函数 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) # 报错
面向过程编程的核心是编程,简单的解释就是类似于流水线,一步一步的进行下去。
优点:按照顺序一步一步向下走,逻辑非常清晰
缺点:因为是上下相关联,上一步错了,下一步就也会跟着一起错。
在编程的过程中,编程的逻辑发生了错误,编写的代码就不会按照
正确的逻辑来运行了,这个时候就不能接受到正确的结果,所以再排错的过程中将需要打印的结果一步一步打印,看看是哪一步打印的时候出现了错误,如果是正确的结果,就是是按照正确的逻辑运算出正确的结果。
标签:匿名函数 pytho 总结 处理 lam 代码 而不是 try name
原文地址:https://www.cnblogs.com/whkzm/p/11586614.html