1.Python内置函数
2.Python内置函数举例
2.1 数学运算
abs,计算绝对值;
>>> abs(-1)1>>> abs(3)3
round,四舍五入;
>>> round(2.9)3.0>>> round(2.45)2.0>>> round(-1.2)-1.0>>> round(-1.6)-2.0
pow,计算幂;
>>> pow(2,3)#2**38>>> pow(2,3,5)#2**3%53
cmp,比较两个数大小,返回0,表示相等,返回-1;表示左边数值小于右边数值;返回1,表示左边数值大于右边数值;
>>> cmp(2.3,2.3)0>>> cmp(2.3,2.4)-1>>> cmp(2.3,2.2)1
divmod,返回除法的结果和余数;
>>> divmod(9,4)(2, 1)>>> divmod(9,3)(3, 0)
max,求最大值;
>>> max([1,2,3,-1,0])3
min,求最小值;
>>> min([1,2,3,-1,0])-1
sum,求和;
>>> sum([1,2,3,4,5])15
2.2 类型转换
int,转换为整数,integer;
>>> int("32")32>>> int("-2")-2>>> int("-1.2")Traceback (most recent call last): File "", line 1, inint("-1.2")ValueError: invalid literal for int() with base 10: '-1.2'
float,转换为浮点型,float;
>>> float("-1.2")-1.2>>> float("-1.20")-1.2>>> float("-0.3")-0.3>>> float("1")1.0
long,转换为长整型,long integer;
>>> long("1234567890")1234567890L
str,转换为字符串类型,string;
>>> str(123)'123'
complex,转换为复数类型;
>>> complex(3,2)(3+2j)
ord,转换为字符对应的数值;
>>> ord('a')97
chr,转换为字符对应的数值;
>>> chr(97)'a'
unichr,转换为数值对应的unicode字符;
>>> unichr(97)u'a'
bool,转换为相应的真假值;
>>> bool(0)False>>> bool(1)True
bin,返回一个字符串,表示一个数值的二进制数;
>>> bin(31)'0b11111'
hex,返回一个字符串,表示一个一个数值的十六进制数;
>>> hex(31)'0x1f'
oct,返回一个字符串,表示一个数值的八进制数;
>>> oct(31)'037'
list,转换为列表;
>>> list((1,2,3,4))[1, 2, 3, 4]
tuple,转换为定值表;
>>> tuple([1,2,3,4])(1, 2, 3, 4)
slice,构建下标对象;
>>> a = [1,2,3,4,5]>>> slices = slice(0,4,2)>>> a[slices][1, 3]
dict,构建词典;
>>> dict(a=1,b=[1,2],c='hello'){'a': 1, 'c': 'hello', 'b': [1, 2]}
2.3 序列操作
all,所有元素都相当与True;
>>> a = range(0,4)>>> b = range(1,4)>>> a[0, 1, 2, 3]>>> b[1, 2, 3]>>> all(a)False>>> all(b)True
any,是否有任意一个元素相当于True;
>>> a = [0]>>> b = range(0,4)>>> a[0]>>> b[0, 1, 2, 3]>>> any(a)False>>> any(b)True
sorted,返回排序后的序列,默认是递增序列,如果指定reverse为True,则返回递减序列;
>>> a = [1,4,3,2]>>> sorted(a)[1, 2, 3, 4]>>> sorted(a,reverse=False)[1, 2, 3, 4]>>> sorted(a,reverse=True)[4, 3, 2, 1]
reversed,返回反序的序列;
>>> a = [1,4,3,2]>>> b = [ele for ele in reversed(a)]>>> b[2, 3, 4, 1]
2.4 类,对象,属性
hasattr,检查对象是否拥有某个属性;
getattr,返回某属性;
setattr,将对象中的属性设置为新的属性;
delattr,删除对象中的属性;
isinstance,判断对象是否为类生成的对象;
issubclass,判断类是否为某类的子类;
class A(object): def __init__(self): # 定义属性value self.value = [2,3,0] # 定义属性min,为built-in中的min函数 self.min = min def getValue(self): return self.value def minValue(self): return self.min(self.value)# 定义对象AobjectAobject = A()# 获取Aobject所有的属性print dir(Aobject)# ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'getValue', 'min', 'minValue', 'value']# 判断Aobject是否有value属性print hasattr(Aobject,"value")# True# 获取Aobject的vallue属性print getattr(Aobject,"value")# [2, 3, 0]# 将Aobject的min属性修改为maxsetattr(Aobject,"min",max)# 调用minValue,将会返回列表的最大值print Aobject.minValue()# 3# 删除Aobject的value属性delattr(Aobject,"value")# 判断Aobject是否有value属性print hasattr(Aobject,"value")# False# 判断Aobject是否为类A的实例print isinstance(Aobject,A)# True# 判断A是否为object的子类print issubclass(A,object)# True
2.5 编译,执行
repr,返回对象的字符串表达式;
class A(object): def __init__(self): # 定义属性value self.value = [2,3,0] # 定义属性min,为built-in中的min函数 self.min = min def getValue(self): return self.value def minValue(self): return self.min(self.value)# 定义对象AobjectAobject = A()b = repr(Aobject)print b
compile,编译字符串成为code对象;
testCode = compile("for i in range(10): print i,","",'exec')exec testCodeprint ""testCode2 = compile("3 * 4 + 5",'','eval')print eval(testCode2)
eval,解释字符串表达式,参数也可以是compile()返回的code对象;
>>> eval("1+3")4
exec,解释并执行字符串,参数也可以是compile()返回的code对象;
>>> exec("print ('hello world')")hello world
2.6 其它
input,等待输入;
raw_input,等待输入;
>>> input("please input:")please input:"sting"'sting'>>> raw_input("please input:")please input:stringu'string'
raw_input()直接读取控制台的输入(任何类型的的输入它都可以接收);
input(),希望能够读取一个合法的python表达式,即你输入字符串的时候,必须使用引号将它括起来,否则会引发一个SyntaxError。
input()本质上还是使用raw_input()函数来实现,只是调用完raw_input()之后,在调用eval()函数,所以,你甚至可以将表达式作为input()的参数,并且它会计算表达式的值并返回它。
除非对input()有特别需要,否则一般情况下我们都是推荐使用raw_input()来与用户交互。
例如,
>>> raw_input("please:")please:1+2'1+2'>>> input("please:")please:1+23>>> raw_input("please:")please:'a'"'a'">>> input("please:")please:'a''a'>>> raw_input("please:")please:''>>> input("please:")please:Traceback (most recent call last): File "", line 1, inFile " ", line 0 ^SyntaxError: unexpected EOF while parsing
globals,返回全局命名空间,比如全局变量名,全局函数名;
locals,返回局部命名空间;