python的内建函数 Python的内建函数( 五 )


缓存对象用于给某个对象类型创建一个更友好的接口 。比如,字符串对象类型通用缓存对象而变得可用,允许逐个字节地访问字符串中的信息 。
4. callable(object)
callable()函数在object对象是可调用对象的情况下,返回真(true);否则假(false) , 可调用对象包括函数、方法、代码对象、类(在调用时返回新的实例)和已经定义‘调用’方法的类实例
5. chr(i)
chr()函数返回与ASCII码i相匹配的一个单一字符串,如下例所示:
print chr(72)+chr(101)+chr(108)+chr(111)
hello
chr()函数是ord()函数的反函数,其中ord()函数将字符串转换回ASCII整数码 , 参数i的取值应在0~255范围内 。如果参数i的取值在此范围之外,将引发ValueError异常 。
6. cmp(x,y)
cmp()函数比较x和y这两个对象,且根据比较结果返回一个整数 。如果xy,则返回正数 。请注意,此函数特别用来比较数值大?。?而不是任何引用关系,因而有下面的结果:
a=99
b=int('99')
cmp(a,b)
7. coerce(x,y)
coerce()函数返回一个元组,该元组由两个数值型参数组成 。此函数将两个数值型参数转换为同一类型数字,其转换规则与算术转换规则一样 。一下是两个例子:
a=1
b=1.2
coerce(a,b)
(1.0,1.2)
a=1+2j
b=4.3e10
coerce(a,b)
((1+2j),(43000000000+0j))
8 compile(string,filename,kind)
compile()函数将string编译为代码对象,编译生成的代码对象接下来被exec语句执行,接着能利用eval()函数对其进行求值 。
filename参数应是代码从其中读出的文件名 。如果内部生成文件名,filename参数值应是相应的标识符 。kind参数指定string参数中所含代码的类别 。
举例如下:
a=compile(‘print “Hello World”’,’’,’single’)
exec(a)
Hello World
eval(a)
Hello World
9. complex(real,[image])
Complex()函数返回一个复数,其实部为real参数值 。如果给出image参数的值,则虚部就为image;如果默认image参数,则虚部为0j 。
10. delattr(object,name)
delattr()函数在object对象许可时,删除object对象的name属性 , 此函数等价于如下语句:
del object.attr
而delattr()函数允许利用编程方法定义来定义object和name参数,并不是在代码中显示指定 。
Python基础之常见内建函数map() 函数接受两个参数 , 一个是函数,一个是可迭代对象(Iterable), map 将传入的函数依次作用到可迭代对象的每一个元素,并把结果作为迭代器(Iterator)返回 。
举例说明,有一个函数 f(x)=x^2  , 要把这个函数作用到一个list [1,2,3,4,5,6,7,8,9] 上:
运用简单的循环可以实现:
运用高阶函数 map() :
结果 r 是一个迭代器 , 迭代器是惰性序列,通过 list() 函数让它把整个序列都计算出来并返回一个 list。
如果要把这个list所有数字转为字符串利用 map() 就简单了:
小练习:利用 map() 函数,把用户输入的不规范的英文名字变为首字母大写其他小写的规范名字 。输入 ['adam', 'LISA', 'barT'] ,输出 ['Adam', 'Lisa', 'Bart']
reduce() 函数也是接受两个参数,一个是函数,一个是可迭代对象, reduce 将传入的函数作用到可迭代对象的每个元素的结果做累计计算 。然后将最终结果返回 。
效果就是: reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
举例说明,将序列 [1,2,3,4,5] 变换成整数 12345 :
小练习:编写一个 prod() 函数,可以接受一个 list 并利用 reduce 求积:
map() 和 reduce() 综合练习:编写 str2float 函数 , 把字符串 '123.456' 转换成浮点型 123.456

推荐阅读