匿名函数
lambda 参数:<代码块>
匿名函数一般不单独使用,和filter()/map()/sorted()/内置方法连用
1.sort/max/min
内置方法是原值排序
salary_dict = {
'nick':2000,
'wick':3000,
'jason':5000,
'egom':10000
}
salary_list = list(salary_dict.items())
# 方法1
def func(i):
return i(1)
salary_list.sort(key=func)
print(salary_list)
# 方法2
salary_list.sort(key=lambdas i:i[1])
print(salary_list)
2.sorted
重新创建一个新的列表排序
salary_list = sorted(salary_list,key=lambds i:i[1],reverse = True)
3.filter过滤筛选(迭代器)
判断匿名函数的返回值的真假,真则留下
print(list(fitter(lambda i:i[1] > 5000,salary_list))) # [('egom':10000)]
4.map绘制/映射
匿名函数的返回值是map()的结果之一
print(list(map(lambda i:i[1]+2000,salary_list))) # [4000,5000,7000,12000]
内置方法
1.bytes 转换二进制串
bytes('中国',encoding = 'utf8')
2.chr/ord
print(cha(97)) # a
print(ord('a')) # 97
3.divmod
print(divmod(10,4)) # 取整/取余
4.enumerate(重要)
it = [1,2,3]
for i,j in enumerate(lt):
print(i,j) # 索引/值
5.eval把字符串的引号去掉,留下的是什么就是什么
s = '[1,2,3]'
print(eval(s)) # [1,2,3] type:str
6.hash 可变不可哈希
print(hash(1)) # 判断是否哈希,可哈希返回原值,否则报错
了解
方法 | 作用 |
---|---|
abs | 绝对值 |
all | 如果全为真则为True,否则为False |
any | 只有有一个为真,则为真,否则为假 |
bin | 转换为二进制 |
oct | 八进制 |
hex | 十六进制 |
dir | 列出模块所有方法 |
frozenset | 不可变集合 |
globals/loals | 列出所有全局变量/当前位置所有变量 |
pow | 幂 |
round | 四舍五入 |
slice | 切片 |
sum | 求和 |
import | 通过字符串导入模块 |
异常处理
只能捕捉逻辑错误
try:
代码
except Exception as e: # 万能异常
print(e) # 错误描述
代码
finally:
代码 # 无论报错与否,最终都会执行
assert 断言
assert 条件
assert 1 == 1 # 不做处理
assert 1 == 2 # 报错
raise 主动抛出错误
内置方法使用
面向过程编程(思想)
IPO编程 == 面向过程编程
面向过程编程:类似于流水线,一步一步的往下走
优点:逻辑非常清晰
缺点:上一步错了,下一步跟着错