前三期请到我博客里找
https://blog.csdn.net/hebtu666
我们继续总结
except的用法和作用
try/except: 捕捉由PYTHON自身或写程序过程中引发的异常并恢复
except: 捕捉所有其他异常
except name: 只捕捉特定的异常
except name, value: 捕捉异常及格外的数据(实例)
except (name1,name2) 捕捉列出来的异常
except (name1,name2),value: 捕捉任何列出的异常,并取得额外数据
else: 如果没有引发异常就运行
finally: 总是会运行此处代码
Python自省
这个也是python彪悍的特性.自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型.简单一句就是运行时能够获得对象的类型.比如type(),dir(),getattr(),hasattr(),isinstance().
python容器
列表:元素可变(任何数据类型),有序(可索引),append/insert/pop;
元组:元素不可变,但元素中的可变元素是可变的;有序(可索引);而且元组可以被散列,例如作为字典的键。
集合:无序(不可被索引)、互异
字典:无序,键值对(key:value),key唯一不可重复
map()
map()
函数接收两个参数,一个是函数,一个是Iterable
,map
将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator
返回。(重点理解)
举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个list [1, 2, 3, 4, 5, 6, 7, 8, 9]
上,就可以用map()
实现如下:
>>> def f(x):
... return x * x
...
>>> r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> list(r)
[1, 4, 9, 16, 25, 36, 49, 64, 81]
map()
作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把这个list所有数字转为字符串:
>>> list(map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
['1', '2', '3', '4', '5', '6', '7', '8', '9']
reduce
reduce
把一个函数作用在一个序列[x1, x2, x3, ...]
上,这个函数必须接收两个参数,reduce
把结果继续和序列的下一个元素做累积计算
简单例子:
>>> from functools import reduce
>>> def fn(x, y):return x * 10 + y>>> reduce(fn, [1, 3, 5, 7, 9])
13579
结合一下,我们可以自己写出int()函数
from functools import reducea={'0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9}def charnum(s):return a[s]def strint(s):return reduce(lambda x, y: x * 10 + y, map(charnum, s))
下一期主要介绍更多相关函数和常见使用。