查看所有内置函数
dir(__builtin__)
异常和警告:都是BaseException子类
ArithmeticError,AssertionError,AttributeError,Exception,BaseException,BufferError,BytesWarning,DeprecationWarning,EOFError,EnvironmentError,FloatingPointError,FutureWarning
IOError,ImportError,ImportWarning,IndentationError,IndexError,KeyError,LookupError,MemoryError,NameError,NotImplementedError,OSError
OverflowError,PendingDeprecationWarning,ReferenceError,RuntimeError,RuntimeWarning,StandardError,SyntaxError
SyntaxWarning,SystemError,TabError,TypeError,GeneratorExit,KeyboardInterrupt,StopIteration,SystemExit
UnboundLocalError,UnicodeDecodeError,UnicodeEncodeError,UnicodeError,UnicodeTranslateError,UnicodeWarning,UserWarning,ValueError,Warning,ZeroDivisionError
abs:取绝对值
In [162]: abs(-1) Out[162]: 1 |
all:参数list全部为真 返回True
In [163]: all([1,2,3]) Out[163]: True In [164]: all([1,2,0]) Out[164]: False |
any:参数list有一个为真 返回True
In [165]: any([1, 0, False]) Out[165]: True In [166]: any([0, False]) Out[166]: False |
basestring:字符串父类 str unicode 确定某一个对象是否是一个字符串的时候 用它来比较 参考isinstance
callable:判断某个对象 是否可以当作函数调用
In [172]: callable(True) Out[172]: False In [173]: callable(abs) Out[173]: True |
classmethod:装饰器 将类名 作为第一个参数隐式传递
class Hello(object): @classmethod def print_hello(cls): print "Hello World" In [175]: Hello.print_hello() Out[175]: Hello World |
cmp:比较函数
In [176]: cmp(1,1) Out[176]: 0 In [177]: cmp(1,2) Out[177]: -1 In [178]: cmp(2,1) Out[178]: 1 |
delattr:删除属性
dir:查看对象的属性方法
divmod:除法取值和余数
In [179]: divmod(5,2) Out[179]: (2, 1) |
eval:把字符串当代码执行 危险
In [197]: eval('2+3') Out[197]: 5 In [198]: exec 'a=1' In [199]: a Out[199]: 1 |
file:同open
filter:对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple
In [202]: filter(lambda x: x != 2, [1, 2, 3]) Out[202]: [1, 3] |
getattr:调用对象的某个属性
hasattr:判断对象是否有某个属性
hash:哈希函数
help:查看对象的帮助信息
id:查看对象的内存地址
isinstance:比较对象类型相同
In [206]: isinstance('a', unicode) Out[206]: False In [207]: isinstance('a', str) Out[207]: True In [208]: isinstance('a', basestring) Out[208]: True In [209]: isinstance(u'a', basestring) Out[209]: True |
map:对sequence中的item依次执行function(item),见执行结果组成一个List返回
In [210]: map(lambda x: x*2, [1,2,3]) Out[210]: [2, 4, 6] |
max:获取最大值
In [211]: max([5,2,3]) Out[211]: 5 |
min:获取最小值
In [212]: min([5,2,3]) Out[212]: 2 |
object:基类
open:打开本地文件
pow:计算整形的N次方
In [213]: pow(3,2) Out[213]: 9 |
range:获取一段有序整形列表
reduce:对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用
In [215]: reduce(lambda x,y: x * y, [2,3,4]) Out[215]: 24 |
reload:重新加载一个已经导入过的包
repr:把某个对象显示成字符串
reversed:排序 倒叙
In [220]: list(reversed([1,3,2])) Out[220]: [2, 3, 1] |
round:取小数点后几位
In [224]: round(2.1234, 3) Out[224]: 2.123 |
set:集合 去重
In [225]: set([1,2,1,3]) Out[225]: {1, 2, 3} In [226]: list(set([1,2,1,3])) Out[226]: [1, 2, 3] |
setattr:给某个对象的属性赋值
sorted:排序
In [234]: sorted([1,4,3,]) Out[234]: [1, 3, 4] |
staticmethod:静态装饰器 不传递类名 参考classmethod
sum:求和
In [236]: sum([3,4,5,6]) Out[236]: 18 |
super:调用父类
xrange:同range 区别调用的时候才生成对应的值
zip:把两个数据合并到一起 通常转成字典使用
In [238]: zip([1,2], [3,4], [5,6]) Out[238]: [(1, 3, 5), (2, 4, 6)] In [239]: zip(['a','b'], [3,4]) Out[239]: [('a', 3), ('b', 4)] In [240]: dict(zip(['a','b'], [3,4])) Out[240]: {'a': 3, 'b': 4} |
execfile:执行文件中的python代码
iter:创建一个迭代对象
下面为不常用的 或者 一眼就能看出来对象 谁有功夫谁整理吧
这是网上找到的链接 http://jianfeihit.iteye.com/blog/1835272 供参考
apply:当函数的参数已经存在列表或者元组中 apple(tset, (1,2)) 等同于 test(1,2)
Ellipsis:省略 没啥用 自行baidu
False
None
NotImplemented:未现实的函数使用 reutrn NotImplemented 变量可以和整形字符串比较均为False
True
tuple
type
unicode
vars
str
slice:切片
raw_input
property
oct
next
bin:整形2进制
bool
buffer
bytearray
bytes
issubclass
len
license
list
locals:局域变量
long
chr:0-255整数 返回对应的字符
unichr:同chr返回unicode类型
ord:chr配对函数
coerce:把两个参数 转成同类型 小对象往大对象转 例如 整形转浮点数
compile:
complex:将source编译为代码或者AST对象。代码对象能够通过exec语句来执行或者eval()进行求值。
input
int
intern
dict
enumerate
float
format
frozenset
globals:全局变量
memoryview
hex
因为python中所有类型都可以转成字符串 所以可以只使用%s
格式 | 描述 |
---|---|
%% | 百分号标记 |
%c | 字符及其ASCII码 |
%s | 字符串 |
%d | 有符号整数(十进制) |
%u | 无符号整数(十进制) |
%o | 无符号整数(八进制) |
%x | 无符号整数(十六进制) |
%X | 无符号整数(十六进制大写字符) |
%e | 浮点数字(科学计数法) |
%E | 浮点数字(科学计数法,用E代替e) |
%f | 浮点数字(用小数点符号) |
%g | 浮点数字(根据值的大小采用%e或%f) |
%G | 浮点数字(类似于%g) |
%p | 指针(用十六进制打印值的内存地址) |
%n | 存储输出字符的数量放进参数列表的下一个变量中 |
代码例子
In [244]: "%s:%s" % ('name', 'age', ) Out[244]: 'name:age' In [245]: "%(name)s: %(age)s" % {'name': 'xiaoming', 'age': 18} Out[245]: 'xiaoming: 18' |
ipython为交互式解释器
断点方式
from IPython import embed embed() import pdb pdb.set_trace() |
In [255]: st Out[255]: 'abcdefg' In [256]: st[:2] Out[256]: 'ab' In [257]: st[::2] Out[257]: 'aceg' In [258]: li Out[258]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [259]: li[:5] Out[259]: [0, 1, 2, 3, 4] In [260]: li[:5:3] Out[260]: [0, 3] In [261]: li[::-1] Out[261]: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] In [262]: li[::-2] Out[262]: [9, 7, 5, 3, 1] |
In [264]: li Out[264]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In [265]: [x*3 for x in li] Out[265]: [0, 3, 6, 9, 12, 15, 18, 21, 24, 27] In [267]: [x*3 for x in li if x%2 == 0] Out[267]: [0, 6, 12, 18, 24] |
详情见链接
In [269]: 1 if True else 2 Out[269]: 1 In [270]: 1 if False else 2 Out[270]: 2 |
In [271]: lambda x,y : x + y Out[271]: <function __main__.<lambda>> In [272]: def test(x,y): .....: return x + y .....: In [273]: test Out[273]: <function __main__.test> In [275]: (lambda x,y : x + y)(1,2) Out[275]: 3 In [276]: test(1,2) Out[276]: 3 |
其中7,8,9因为值可变 不可以作为字典类型的key
In [284]: bool(1),bool(0),bool(-1) Out[284]: (True, False, True) In [285]: bool(1.1),bool(0.0),bool(-1.1) Out[285]: (True, False, True) In [286]: bool(None) Out[286]: False In [287]: bool(''),bool('a') Out[287]: (False, True) In [288]: bool(()),bool((1, )) Out[288]: (False, True) In [289]: bool([]),bool([1, ]) Out[289]: (False, True) In [290]: bool({}),bool({'name': 'xiaoming'}) Out[290]: (False, True) In [291]: bool(set([])),bool(set([1])) Out[291]: (False, True) |
函数 | 解释 |
---|---|
__init__(self, *args, **kwargs) | 初始化对象时执行 |
__del__(self) | 删除对象执行 |
__new__(self, *args, *kwargs) | 实例的生成操作 必须返回实例 必须继承object 单例模式(同一个类) |
__str__(self) | 字符串转换或print执行调用 |
__getitem__(self, key) | 通过索引对应得值 |
__setitem__(self, key, value) | 增加索引和对应得值 |
__len__(self) | len()调用 |
__cmp__(src, dst) | 比较src和dst |
__gt__(self,other) | 大于 |
__lt__(self,other) | 小于 |
__ge__(self,other) | 大于等于 |
__le__(self,other) | 小于等于 |
__eq__(self,other) | 等于 |
__call__(self, **args) | 对象作为函数调用 |
__iter__(self) | 迭代对象调用 |
__getattr__(self, key) | 获取属性 |
__setattr__(self, key, value) | 增加属性 |
__delattr__(self, key) | 删除属性 |
__getattribute__ | 类似__getattr__ |
代码实例
# -*- coding: utf-8 -*- class classGetSet(object): kk = {} def __init__(self): print '__init__' def __getitem__(self, key): print '__getitem__' return self.kk[key] def __setitem__(self, key, value): print '__setitem__' self.kk[key] = value def __del__(self): print '__del__' def __str__(self): print '__str__' return '__str__' def __len__(self): print '__len__' return len(self.kk.keys()) def __cmp__(src, src2): return True def __iter__(self): print "__iter__ called" for x in range(10): yield x if __name__ == '__main__': # 实例化 调用__init__ cla = classGetSet() # 调用 __setitem__ cla[0] = 'key1' cla['second'] = 'key2' # 调用 __getitem__ print cla[0] # 调用 __iter__ for c in cla: print c # 调用 __str__ print str(cla) # 调用 __len__ print len(cla) # 调用 __cmp__ print 2 > cla # 如果查询 无饮用后 调用 __del__ del cla |