1.reduce函数 (计算累加和计算阶乘)
import functools
functools.reduce(add,[1,2,3,4,5])
15
functoosl.reduce(lambda x,y:x*y,range(1,11))
3628800
2.偏函数
对指定的函数进行二次包装,通常是将现有的函数部分参数预先绑定。类似于闭包。
import functools
square = functools.partial(pow, exp=2)
square(2)
4
square(3)
9
3.@wraps 装饰器
4.永久储存
5.路径处理
6.处理异常
try-except--(出错了执行except后内容,正确直接输出try结果)
try:
1/0
except:
print("出错了")
出错了
try:
1/1
except:
print("出错了")
1.0
except后面可以限定错误类型(除了因为0的错误可以不报错,其他依旧正常报错):
try:
520+"haha"
except ZeroDivisionError:
print("出错了")
Traceback (most recent call last):
File "<pyshell#15>", line 2, in <module>
520+"haha"
TypeError: unsupported operand type(s) for +: 'int' and 'str'
增加 as e ,输出错误的原因
try:
1/0
except ZeroDivisionError as e:
print(e)
division by zero
可以用元组,包含几种错误的类型,下面代码不会报任何错
try:
1/0
520+"loce"
except (ZeroDivisionError, ValueError, TypeError):
pass
try-except-else
try:
1/0
except:
print("逮到了")
else:
print("没逮到")
逮到了
try:
1/1
except:
print("逮到了")
else:
print("没逮到")
1.0
没逮到
try-except-finally
try:
1/1
except:
print("逮到了")
else:
print("没逮到")
finally:
print("逮没逮到都会吱一声~")
1.0
没逮到
逮没逮到都会吱一声~
finally通常用来做收尾的工作,比如关闭文件
try:
f = open("fishc.txt", "w")
f.write("I lovefishc")
except:
print("出错了")
finally:
f.close()
11
异常的嵌套
try:
try:
520+"fishc"
except:
print("内部异常")
1/0
except:
print("外部异常")
finally:
print("收尾工作")
内部异常
外部异常
收尾工作
raise 语句(自爆异常)
-assert语句(只能引发一个叫做AssertionError的异常)
通常用于代码调试
-利用异常来实现goto
try:
while True:
while True:
for i in range(10):
if i >3:
raise
print(i)
print("被跳过")
print("被跳过")
print("被跳过")
except:
print("到这来了")
0
1
2
3
到这来了