内置函数

常用列表

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

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

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

class Demo(object):

    def __len__(self):
        return 3

d = 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:
		return	True
	else:
		return False
b = 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,默认返回None
print(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 # 私有属性__a
		self.a = a
	def function(self,b):
		return 'Demo%s-%s'%(self.__a,b) # 私有变量,类内部可以访问
	def __private(self):
		pass
d = Demo(3) 
print hasattr(d,'function') # True
print hasattr(d,'__private') # False
print hasattr(d,'a') # True
print hasattr(d,'b') # False

print 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 = 0
for 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 + b
print(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'))))  # list
print(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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值