内置函数

来源:互联网 发布:c语言数组赋初值 编辑:程序博客网 时间:2024/04/27 00:11

常用列表

        系统函数是可以直接调用式。

        del():删除相应的变量,删除后该变量就相当于未进行定义。

        len():获取序列的长度。其实质是调用对象的__len__()。所以自定义类时,只要重写了__len__方法即可。如:

class Demo(object):    def __len__(self):        return 3d = Demo()print(len(d))  # 3
        如果不定义__len__函数,调用len(d)时会报错。

        type():获取指定变量的类型,如tuple,list等。

        str():将指定的变量转换为字符串。

        help():查询文档。比如help(dict.keys)就是查询字典中keys()的用法与作用。

        dir():查看模块中的方法、属性。然后可以通过help(模块名.方法名或属性名)查看对应的方法或属性的文档。

        range():返回一个整数的list。range(stop),参数为列表中整数的终止值,如range(4)得到的就是[0, 1, 2, 3];range(start,stop),返回的是[start,start+1,……,stop-1];range(start,stop,step)以步长为step的形式增加。如:

>>> list(range(1,6))[1, 2, 3, 4, 5]

        外面必须使用list函数,否则不会返回列表。

        print():输出。可以输出多个参数,只需要用逗号隔开即可,在输出时每一个逗号都会被替换成空格。

        exit():在交互模式下,退出python交互。在代码中,退出整个程序。

        abs():求绝对值。

        max,min():求取系列中最大/小值。

        divmod():Return the tuple (x//y, x%y)。

        pow():两个参数是与**效果一样,即pow(2,3)就是2的3次幂。三个参数时,相当于x**y % z。

        round():返回离参数最近的整数。如round(-11.6)返回提-12,而round(-11.2)返回是-11。

        callable():返回当前变量是否可以被调用。如果是函数,返回true,否则返回false。

        isinstance():判断变量是否属于某个类型。如isinstance(f,int)如果f是一个int变量则返回true,否则为false。

        int,long,float,complex,bool:将字符串转换为相应类型的数字。其中Int类型涉及到进制问题。如int("15",16)表示字符串中的15是16进制的15,转换为10进制后的结果是21;int("f",16)得到是15。

        str,list,tuple,hex,oct:将参数转换成字符串,列表,元组,十六进制,八进制。

        chr,ord():前者将数字转换成unicode字符串,后者是前者的逆操作。注意:数字必须是正数。

        filter:对iterable进行过滤。filter(function,iterable),依次将序列中元素传入到function中,只有返回True的元素才会被保留。如下:

a = range(1,10,3)def f(x):if x%2 == 0:returnTrueelse:return Falseb = filter(f,a)print(list(a)) # [1, 4, 7]print(list(b)) # [4]
        zip:将多个序列中的元素依次封装到一个元组中。如果序列的长度不相同,以最短的长度为准。
a = ['n1','n2','n3']b = (123,234,345)c = "abs"print(list(zip(a,b,c))) # [('n1', 123, 'a'), ('n2', 234, 'b'), ('n3', 345, 's')]

其文档为:

""" Return a zip object whose .__next__() method returns a tuple where the i-th element comes from the i-th iterable argument.  The .__next__() method continues until the shortest iterable in the argument sequence is exhausted(枯竭) and then it raises StopIteration."""

        map:映射,将iterable中各个元素通过参数函数映射成另一个值,并将值组合成list返回。函数参数不能为None。依次将参数序列的元素传入函数中作为参数,并将函数返回值当前列表的元素。如:

def f(*x):a = "%s"%(x[0])b = (123,234,345)print(list(map(f,b))) # [None, None, None] 因为f没有return,默认返回Noneprint(list(map(lambda x:x*2,b))) # [246, 468, 690]

        第二个map中,将b中的参数依次传入lambad表达式中,得到的结果组成列表中的各个元素。

        传入map中的序列各个不固定,可以是多个。

        hasattr(obj,name):判断某对象是否具有指定的name属性。如果有返回True,否则返回False。注意:也可用来判断是否具有某个方法。如:

class Demo:def __init__(self,a): self.__a = a # 私有属性__aself.a = adef function(self,b):return 'Demo%s-%s'%(self.__a,b) # 私有变量,类内部可以访问def __private(self):passd = Demo(3) print hasattr(d,'function') # Trueprint hasattr(d,'__private') # Falseprint hasattr(d,'a') # Trueprint hasattr(d,'b') # Falseprint callable(d.function) # True 判断function属性是否为方法print callable(d.a # False a只是属性,并不是方法,所以返回False
        getattr(object, name[, default]):获取object对象中name属性的值,如果没有name属性就返回default。
        setattr(object, name, value):为object中name属性值设置成value。
        raw_input([prompt]):获取用户在命令行中输入的文字,并以string形式返回。prompt表示提示给用户的文字。如:
obj = ('语文','数学','物理','化学')sumScore = 0for x in range(4):sumScore += int(raw_input('请输入您的%s成绩:'%obj[x])) # 这里规定所有的成绩为整数,所以用int()print '您的总成绩为:%d,平均成绩为:%s'%(sumScore,sumScore*1.0/4)
它的运行结果为:
请输入您的语文成绩:100请输入您的数学成绩:20请输入您的物理成绩:45 请输入您的化学成绩:52 您的总成绩为:217,平均成绩为:54.25

        reduce迭代。将上一次计算结果和下一个元素当作参数传入函数中,直到最后得到一个结果。如下:

from functools import reduce  # 3.5中,将reduce换到了functools模块中def f(a, b):    print(a, b)  # 依次输出    return a + bprint(reduce(f, list(range(11))))

        其输出结果为:0 1\1 2\3 3\6 4……。从中可以看出,每一次调用时a值都是上一次调用的返回值,除了第一次是前两个元素外。

        上述代码就是求1+2+……+10的和。

        sorted():将iterable(如list,tuple等)按升序方式排列,并将结果以list形式返回。如:
print(type(sorted(('a','c','d','b'))))  # listprint(sorted(('a','c','d','b')))  # ['a', 'b', 'c', 'd']
        该函数还可以传入自定义函数,以关键字的形式传入,关键字为key。自定义函数将作用于iterable的每一个元素,并得到一个新值,将这些新值以升序排序,得到一个顺序,按该顺序调整iterable,并最终将调整后的结果以list返回。如:
def a(n):    return str(n)[::-1]print(sorted((123,213,411,118),key = a))  # 传入定义函数,其结果为[411, 213, 123, 118]

        a函数是将传入的值给反转,所以tuple就变成了321,312,114,811,按从小到大的顺序就是114,312,321,811,对应的原本的元组就成了输出的结果了。

        sorted还可以传入关键字reverse,它表示是否反转升序喊出。默认时是升序,如果该关键字的值是True,则输出时就是降序。




0 0
原创粉丝点击