内建函数
博主在学习The Python Library Reference (Release 2.7.6),发现每天作者Guido van Rossum和Fred L. Drake都会更新这个手册,又没有仔细看具体做了哪些修改,只是发现今天的内建函数表竟然和几天前的不一样。所以语言的版本真的是要留心啊!言归正传,内建函数不需要import导入库,直接调用,具体函数列表如下表:
- abs(x) 取绝对值,浮点数也可以取绝对值。
- all(itarable) 检测元组或列表中的元素是否有空或者数字为0,则为false。 空元组或列表返回True,2.5版本以上有此函数。
- any(iterable) 检测元组或列表中的元素是否有有一个以上元素不为空或者数字不为0,是则为True。2。5版本以上有此函数。
- basestring() 用来检测对象是否是为str字符串或统一码unicode。 支持2.3版本以上,似乎不支持3.0.例子:
>>> isinstance(u"你好", basestring) True
- bin(x) 把整数转成二进制,支持2.6以上版本。
- bool([x]) 把一个值转换成布尔值,支持2.3以上版本
- bytearray([source[, encoding[, errors ]]]) 根据source类型生成为值为[0,256)的数组。例子:
>>> a = bytearray(2) #生成2个空数组; >>> b = bytearray('b','a','e') # 生成三个对应ASCII值的数组; >>> c = bytearray ([1,3,4]) #生成三个赋初值的数组
- callable(object) 检测一个对象是否可以调用,但是返回true不一定真正可以调用。 类的实例需要类有_call_()函数才能调用实例。
- chr(i)返回[0,255]对应的ASCII值
- classmethod() 指定一个类的方法为类方法,没有此参数指定的类的方法为实例的方法。支持2.4以上。例子:
class CM: @classmethod #没有这句话必须实例化后才能调用func函数 def func(self): print "This is a class method" CM.func() #这样可以调用类的函数
-
compile(source, filename, mode, flags=0, dont_inherit=False,optimize=-1)
将source源转化成代码或AST对象,使其能够被eval()或exec()执行。参数filename是指定读取文件,如果不是从文件读取代码则传递一些可辨认的值(比如‘<string>’)。参数mode详细说明哪种代码可以被编译; ‘exec’用于执行一系列命令, ’eval’用于执行单个表达式, ’single’用于执行单个交互命令。可选参数 flags和dot_inherit控制 影响代码编译的将来语句(具体没看懂)。例子:
a = compile ( " print 'this is a test'",'',exec) exec a
- complex([real[, imag ]])将数值转换为复数,例子:
讲一个字符串转化为复数,例子:complex(3,4) # 3+4J
complex(‘4+3J’) # 4+3J
- delattr(object,name)
name必须是string, 删除object的name属性,等同于del x.foobar
- dict() 返回一个字典。
- dir() 列出模块定义的标识符。标识符有函数、类和变量。当你为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。
- divmod(a,b) 求余数和商.
- enumerate(sequence, start=0) 枚举
seasons = [‘spring’,’summer’,’autumn’,’winter’] list(enumerate(seasons))
- eval(expression, globals=None, locals=None)
expression应为string, globals和locals 为可选,globals应为字典,locals应为对应对象,两者缺省则为当前环境; 如果global给了,local默认为global。
- exec(object[, globals[, locals ]])
用于执行Python代码,object可以是string或代码对象。
- execfile(filename[, globals[, locals ]]) 类似exec,执行文本。
- file(name[, mode[, buffering ]]) 与open()类似,file类型的函数,见file objects。
- filter(function, iterable) 过滤掉function中为false的部分,例子:
def test(x): return (x > 3) filter(test, [1, 2, 3, 4, 5])
- float([x ]) 转换一个字符或数字到浮点数
- format(value[, format_spec ])
将值转化为格式化的形式,转化依据是format_spec。默认将会把值转化为string。
例子:a = 3 format(a)
- frozenset([iterable ]) 返回一个不变集合,与set()相反
a = frozenset([2,4,5]) 8 in a b = set([2,4,5]) b.add(8)
- getattr(object, name[, default ])
得到object的属性name,name必须是string。
例子:>>> class test: >>> def f(self,name,age): >>> self.name =name >>> self.age = age >>> print name,age >>> b=test("ee",34) ee,34 >>> getattr(b,'name') 'ee'
- globals()
返回当前全局符号表
- hasattr(object, name)
检测是否object有name的属性
- hash(object) 返回对象hash值
- help([object ])
唤起自带帮助功能(感觉没有ipython的?好用)
- hex(x)
转化成16进制,用float.hex()转化浮点数
- id(object) 返回对象的id。
- input([prompt])
返回输入的值,当EOF被读到将产生EOFError,例子:S = input(“-->”) #回车产生EOF,所以可以使用raw_input(),我也不知道为什么
- int(x, base=10) 把x转换为整数,base为进制
- isinstance(object, classinfo) 检测object是否为class的实例化对象
- issubclass(class, classinfo) 检测class是否为后者的子类
- iter(object[, sentinel ]) 返回一个iterator对象,可以是用于迭代序列的 object_iter() 迭代器(如果 object 支持 _getitem_ 方法的话),或者提供一个 sentinel,迭代器会在每次迭代中调用 object,直到返回 sentinel。(不懂)
- len(s) 返回s的长度。
- list([iterable ]) 从可迭代的项目中初始化一个表。
- locals() 更新并列出当前本地符号表。
- map(function, iterable, ...) 对方法中的每个可迭代的项进行函数操作后返回值,例子:
def f(x): return x + 1 map(f, [3,4,5])
- max(iterable, *[, key, default ]) 返回最大值,可迭代,历遍的数据。
- max(arg1, arg2, *args[, key ])同上
- memoryview(obj) Return a “memory view” object created from the given argument.(不懂)
- min(iterable, *[, key, default ])
min(arg1, arg2, *args[, key ]) 返回最小值。
- next(iterator[, default ]) 返回迭代器的下一个项目,当iterator编历完的时候,如果提供default参数,该default参数 将被返回,否则触发StopIteration异常。
- object() 产生一个没有特征的对象。
- oct(x) 转化整数到八进制。
- open(file, mode=’r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True,opener=None)
file可以是字符串或给于路径的字对象或数字文件描述器?
mode
bufferingmode 对应意义 r 默认读 w 写,替换的文件 x 额外的打开,文件已存在则打开失败 a 写打开,在文件末尾增加内容 b 二值模式 t 默认文本模式 + 打开一个磁盘文件读写 U 通用新一行模式(不赞成)
可选,0代表关闭buffer功能, 1代表开启行选择buffer。> 1 固定byte块buffer.
encoding
在文本模式下用于编解码的方式,默认依赖平台.
errors
字符串用于说明编解码错误是如何被处理的–二值模式同样适用。
可选的错误处理方式有:
strict 当编码错误时提示ValueError
Ignore 忽略编码错误
replace 用一个错误的符号替代出错的数据地方
surrogateescape 用于处理一个未知的编码文件
xmlcharrefreplace 不被编码支持的字符将被合适的XML字符替代,仅用于写
backslashreplace 不被编码支持的字符将被’/’替代,仅用于写
newline 控制通用新一行的模式
closed是False时文件描述器而不是文件名将在文件被关闭时继续保持打开.
opener A custom opener can be used by passing a callable as opener.(不懂)
- ord(c) 返回统一码的数值,chr()的反操作.
- pow(x, y[, z ]) 等同于x^y, 如果还有z,则会再做求模运算。
- print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
打印对象,sep是分割,end是结尾符,输出的目的地是文件,默认是stdout。如果flushed=true,数据会被立即写到文件中去。
- property(fget=None, fset=None, fdel=None, doc=None)
返回一个对象的属性,fget得到函数属性值, fset函数设置, fdel删除属性,doc是文档字符串 - range(stop)
range(start, stop[, step ])
返回一列数值,可以设置起始、结尾、步长。
- repr(object) eval()的逆操作。
- reversed(seq) 把一个迭代器翻转。
- round(number[, ndigits ]) 讲一个浮点数取到小数点n位。
- set([iterable ]) 返回一组集合。
- setattr(object, name, value) getattr()的反操作。
- slice(stop)
slice(start, stop[, step ]) 网上例子没有用到这个函数啊!numbers=[1,2,3,4,5,6,7,8,9,10] numbers[8:3:-1]
- sorted(iterable[, key][, reverse]) 分类列表。
- staticmethod(function) 返回一个函数的静态方法,例子;
class c: @staticmethod def f(arg1,arg2) #没有隐含第一参数
- str(object=’‘)
str(object=b’‘, encoding=’utf-8’, errors=’strict’)
把一个对象转化成str
- sum(iterable[, start ]) 求和包括start代表的数, 例子:
sum([2,3,4],3)
- super([type[, object-or-type ]]) 调用父类或同类的方法,例子:
class A: def __init__(self): print "enter A" print "leave A" class B(A): def __init__(self): print "enter B" A.__init__(self) print "leave B" b = B()
- tuple([iterable ]) 返回一组元组。
- type(object) 返回对象的类型。
type(name, bases, dict) 构造一个新类型。 - unichr(i) 返回统一码对应的字符,i的范围在UCS2 [0..0xFFFF] 或 UCS4 [0..0x10FFFF],是ord()反操作。
- unicode(object=’‘)
unicode(object[, encoding[, errors ]]) 返回统一码字符串,可以通过几种方式:如果encoding和errors都给了,函数将会通过8bit字符解码或通过codec解码;如果没有可选参数给予,函数将会模仿str(), 返回Unicode字符。 - vars([object ]) 返回模块、类、实例和任何对象的 __dict__ 属性。
- xrange(stop)
xrange(start, stop[, step ]) 这个方法类似range(),不同的返回的是xrange对象,而不是列表。相比较range,它更省内存和更快。
- zip([iterable, ... ]) 这个方法返回一个元组。第i个元组包含从可迭代对象中获取的第i个元素。返回的列表长度是最小的可迭代对象的长度。当有多个长度相同的可迭代对象做参数是,zip()方法与map()方法类似。zip与*一起可以用来unzip列表。 2.0新特性,2.4做过更新。例子:
>>> x = [1, 2, 3] >>> y = [4, 5, 6] >>> zipped = zip(x, y) >>> zipped [(1, 4), (2, 5), (3, 6)] >>> x2, y2 = zip(*zipped) >>> x == list(x2) and y == list(y2) True
- __import__(name[, globals[, locals[, fromlist[, level ]]]]) 暂不用。
Python的内建函数大致就这么学习了一下,有些地方还不明白,为了保持兴趣也不深究了,以前没有写过这种技术博客,排版还需要改进。也希望有python大牛能够带小弟一把,能够快快成长!