python内置函数详解

1.all(iterable),如果iterable中所有的元素都为True,返回True,或iterable为空(empty),返回True。相当于如下(源码):

all(iterable):

for element in iterable:

    if not element:

        return Ture

    return Ture

2.any(iterable),如果iterable中所有的元素都为True,返回True,如果iterable为空(empty),返回False。相当于如下(源码):

any(iterable):

for element in iterable:

    if element:

        return Ture

    else:

        return False

3.内置函数bytearray([source[,encoding[,errors]]])

https://blog.csdn.net/weixin_33752045/article/details/85810757

内置函数bytes([source[, encoding[, errors]]])

https://blog.csdn.net/caimouse/article/details/40860827

4.chr(i),i表示的是ascii码对应的十进制号码,print(chr(i))输出的是其相对应的转义字符,如print(chr(64))输出的是@。5.compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1),由于这个函数一般很少用到,所以对于其中的参数做一个简单的说明,然后再举一个例子。

说明:

1)将source编译为代码或AST对象。代码对象能够通过exec语句来执行或者eval()来进行求值。

2)参数source:字符串或AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。

3)参数filename:代码文件名称,如果不是从文件中读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。

4)参数mode:指定编译代码的种类,可以指定为'exec','eval','single'。当source中包含流程语句时,mode应指定为'exec';当source中只包含一个简单的求职表达式,mode应指定为'eval';当source中包含了交互式命令语句,mode应指定为'single'。

用python代码举例:

#流程语句使用exec

st = "for i in range(1,10):print(i)"

c= compile(st,'','exec')

exec(st)

print('-'*40)

输出结果为:

1

2

3

4

5

6

7

8

9

--------------------------

 

#简单求值语句用eval

code1 = '1+2+3+4'

compile2 = compile(code1,'','eval')

print(eval(compile2))

print('-'*40)

输出结果为:

10

---------------------------

 

#交互语句用single

code2 = 'name = input("please input your name");

print(name)'

compile3 = compile(code2,'','single')

exec(compile3)

输出结果为:

please input your name:python (回车)

python

6.class complex([real[, imag]]),以实部+虚部*j形式返回一个复数,或将字符串或数字转化为复数,且函数的调用不能有第二个参数,第二个参数永远不能是字符串。每个参数可以使用任意数值类型(包括复数 注意:写字符串的话可能会报出语法错误。)。如果缺省虚部,它默认为0,构造器会以整数或浮点数对待。如果两个参数都缺省,则返回0j。

举例:

print(complex(1,2))会输出(1+2j)

print(complex(1,2j))会输出(-1+0j)(这里第二个参数的数值后面加上j的话,会取后面的数值的相反数然后与前一个数值相加在一起组成实部,然而虚部还是默认为0j,虚部的正负号与第二个参数的正负号一致)

print(complex(2j))会输出2j

print(complex(1+2j))会输出(1+2j)

print(complex(3))会输出3j

print(complex(1j,6))会输出7j(这里如果第一个参数带有j,会将第一个参数的数值与第二个数值相加组成虚部的系数(不管正负数),实部的符号取决于第一个参数的正负号,如果第一个参数为正则是以ij的形式输出(i为任意实数值),反之则以-0+ij的形式输出(i上同))。

print(complex("1+8j"))就会输出(1+8j)

print(complex("safdas"))python解释器就会报错。

7.delattr(object, name)本函数是用来删除对象的属性,比如在函数里用setattr()添加的属性,就可以利用这个函数来删除。参数object是一个对象,参数name是一个字符串,但是这个字符串必须是对象的属性。下面来举一个例子:

class test:

    pass

a = test()

a.setattr(a,'foo',12) #给a对象添加一个foo属性并赋值为12

print(hasattr(a,'foo')) #输出为Ture,hasattr()函数是判断a对象中是否有foo这个属性,有输出True,否则输出False。

print(a.foo) #输出结果为12,将a对象中foo的值输出。

a.delattr(a,'foo') #删除a对象中的foo属性。

printf(hasattr(a,'foo')) #输出为False,再次判断a对象中是否有foo这个属

8.class dict(**kwarg)以键值对方式构造函数

d1 = dict(xsc = '过四级', two = 2 , three = 3)

print(d1) 输出{'xsc':'过四级','two':2,'three':3}

class dict(mapping, **kwarg)以映射方式构造字典

d2 = dict(zip(['one','two','three'],[1,2,3]))

print(d2)输出{'one':1,'two':2,'three':3}

class dict(iterable, **kwarg)以可迭代对象构造字典

d3 = dict([('one',1),(two,2),(three,3)])

print(d3)输出{'one':1,'two':2,'three':3}

9.divmod(a,b)本函数是实现a除以b,然后返回商与余数的元组。如果两个两个参数都是整数除法,结果相当于(a//b,a%b)。如果a或者b是浮点型,相当于(math.floor(a/b),a%b)

举例:

print(divmod(2,4))输出(0,2)

print(divmod(2,2))输出(1,0)

print(divmod(9,2))输出(4,1)

print(divmod(3.6,2))输出(1.0,1.6)

print(divmod(6,2.6))输出(2.0,0.7999999999999)

print(divmod(8.1,3.9))输出(2.0,0.299999999999)

10.enumerate(iterable,start=0)函数是把可迭代对象返回一个枚举对象,iterable是可迭代参数,比如列表,字典,元组等对象;start是枚举的起始值,默认是从0开始的。这个函数的实现原理是从迭代对象的方法__next__()取得一项值,然后就对参数start开始计数,每取一项加1,生成一个元组返回。

举例:

a = ['哈哈','嘿嘿','嘻嘻']

print(list(enumerate(a , start = 1)))输出[(1,'哈哈'),(2,'嘿嘿'),(3,'嘻嘻')]

strs = '我是一个兵'

print(list(enumerate(strs , start = 0)))输出[(0,'我'),(1,'是'),(2,'一'),(3,'个'),(4,'兵')]

11.eval(expression, globals=None, locals=None)与exec(object[, globals[, locals]])

eval函数是只执行表达式字符串代码,而执行语句代码;exec函数是只执行语句代码,而不执行表达式代码,因为它没有任何返回值。(compile函数只是编译字符串代码,而不做任何的执行,但它可以编译表达式或语句)

12.filter(function, iterable)本函数用来从一个迭代对象iterable遍历所有元素,当每个元素作为参数给函数function对象运行之后,判断为True的元素保留下来,而为False的元素则跳过,即是达到过滤不需要元素的目标。参数iterable是可迭代对象,比如列表,字典,字符串,或者带迭代器的函数对象。参数function是一个能输入元素进行判断并返回值的函数,如果这个参数为空,默认使用标识符identity为缺省函数。

举例:

listx = list(filter(None,[0,1,2,3,4]))

print(listx)输出[1,2,3,4]

a = [1,2,3,4,5,6,7]

lists = list(filter(lambda x : x in range(2,5)))

print(lists)输出[2,3,4]

def f(x)

if x in range(2,6):

return x

a = [1,2,3,4,5,6,7,8,9]

s = list(filter(f,a))

print(s)输出[2,3,4,5]

13.class frozenset([iterable])返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。参数iterable是一个可迭代的对象,如列表,字典,元组等。

举例:

a = frozenset(range(1,10))

print(a)输出frozenset({1,2,3,4,5,6,7,8,9})

b = frozenset('iam')

print(b)输出frozenset({'i','a','m'})

14.getattr(object, name[, default])获取对象object的属性或者方法,如果存在就打印出来,如果不存在,就报出一个错误。需要注意的是如果是返回的对象的方法,返回的是方法地址,如果需要运行这个方法,可以在后面添加一个括号。

举例:

class test():

name = 'xiaohu'

def skill(self):

return 'mid'

t = test()

print(getattr(t,'name'))输出xiaohu

print(getattr(t,'skill'))输出skill的方法地址

print(getattr(t,'skill')())输出mid

print(gettattr(t))报出一个错误

print(gettattr(t,'a'))报出一个错误

15.globals()在当前作用域下查看全局变量,会以字典(键值对)的形式输出所有的全局变量名和变量值,如果有方法,则是方法名和方法地址。

16.hasattr(object, name)判断对象object中是否含有name属性或name方法。如果有则返回Ture,否则返回False。

举例:

class test():

    name = 'UZI'

    def skill(self):

        return 'ADC'

t =test()

print(hasattr(t,'name'))输出Ture

print(hasattr(t,'skill'))输出True

print(hasattr(t,'run'))输出False

print(hasattr(t))报出一个错误

17.hash(object)本函数返回对象的哈希值。返回的哈希值是使用一个整数表示,通常使用在字典里,以便实现快速查询键值。参数object输出是字符型时,是根据数值来计算的,比如1和1.0计算出来是一样的哈希值,因此说这个函数是不区分不同的数值类型。

举例:

class test():

    name = 'Letme'

    def skill(self):

        return 'SUP'

t = test()

print(hash(t))输出一串整数数字

print(hash('abs'))输出一串整数数字

print(hash(2.0))输出2

print(hash(2))输出2

18.help([object])援引内建帮助系统(该函数目的是为了交互式使用)。如果未给定参数,则在解释器控制台启动交互式帮助系统。如果参数是字符串,随后会根据字符串查找以此命名的模块、函数、类、方法、关键字或文档主题,并且在控制台上打印帮助页。如果参数是任意其他对象类别,会生成该对象的帮助页。该函数通过节点模块增加到内建命名空间。

19.hex(x)将整数转换为以‘0x’为前缀的小写十六进制字符串。

举例:

print(hex(16))输出0x10

print(hex(26))输出0x1a

20.id(object)用于获取对象的内存地址

举例:

a = 1

print(id(a))输出一串数字

b = 2

print(id(b))输出一串数字

21.input([prompt])本函数是实现从控制台输入一行字符串。其中参数prompt是输入字符串的提示字符串(与c语言里的scanf()函数类似)。

举例:

s = input('RNG牛逼 ')

print(s)

首先出现提示符'RNG牛逼'然后你输入正文 如'yes',后面也输出yes

22.isinstance(object, classinfo)本函数用来判断对象实例object是否是classinfo的实例,如果是就返回Ture,否则返回Flase。参数classinfo可以是类型,也可以是tuple/dict/list等类型。

举例:

class fooA():

    pass

class fooB():

    pass

a = fooA()

b = fooB()

print(isinstance(a, fooA))输出Ture

print(isinstance(b, fooA))输出False

print(isinstance(a, fooB))输出False

print(isinstance(b, fooB))输出Ture

23.issubclass(class, classinfo)本函数用来判断类参数class是否是类classinfo的子类。如果是,返回Ture,否则返回Flase。

举例:

class A():

    pass

class B(A):

    pass

class C():

    pass

print(issubclass(B,A))输出True

print(issubclass(C,A))输出Flase

24.iter(object[, sentinel])本函数返回一个迭代子对象。当第二个参数不出现时,参数object应该是一个容器,支持迭代协议,也就是定义有__iter__()函数,或者支持序列访问协议,也就是定义有__getitem__()函数的对象,否则会返回TypeError异常。当第二个参数sentinel出现时,参数object应是一个可调用对象,定义了__next__()函数,当枚举到的值等于sentinel时,就会抛出异常StopIteration。

举例:

s = 'RNGNB'

it = iter(s)

print(s)输出['R','N','G','N';'B']

print(it)输出it的内存地址

print(it.__next__())输出R

print(it.__next__())输出N

print(it.__next__())输出G

print(it.__next__())输出N

print(it.__next__())输出B

25.locals()更新和返回当前局部符号表的字典。当locals()在函数代码中调用时会返回自由变量,但是在类代码中不会。

26.map(function, iterable, ...)返回一个迭代器,将其function应用到iterable的每个项,并生成结果。如果传入额外的iterable参数,函数必须获取哪些参数并平行应用到所有iterable的项,当最短的迭代器迭代完时终止。

举例:

#与filter()同样的输入,观察结果

print(list(map(lambda x :x%4,range(10))))输出[0,1,2,3,0,1,2,3,0,1]

#map后输出长度保持不变,无效值则返回None

def eventest(x):

    if x%2 == 0:

        return x

print(list(map(eventest,range(10))))输出[0,None,2,None,4,None,8,None]

#多参数情况下,输出长度由最短输入而定

def foobar(x,y,z):

    return(x+y)*y/z

a = [1,2,3,4]

b = [2,4,6,8,10]

c = [3,6,9,12,15,18]

print(list(map(foobar,a,b,c)))输出[2.0,4.0,6.0,8.0]

27. next(iterator[, default])本函数是返回迭代下一个元素的值,主要通过调用__next__()方法来实现的。如果default参数有设置,当下一个元素不存在时,就返回default参数的值,否则抛出异常StopIteration。

举例:

l = ['a','b','c']

it = iter(l)

print(next(l))输出a

print(next(l,1))输出b

print(next(l,1))输出c

print(next(l,1))输出1(列表已迭代完,取的default值)

28.oct()将整数转换为一个以‘0o’为前缀的八进制字符串。结果是一个有效的python表达式。

29.ord(c)本函数主要用来返回对应字符的ascii码,就是相当于chr()函数的逆操作。

举例:

print(ord('a'))输出97

30.pow(x, y[, z])本函数是计算x的y次方,如果z存在,则再对x的y次方进行取模,其结果等效于pow(x,y)%z。其中pow(x,y)与x**y等效。采用一起计算的方式是为了提高计算的效率,要求三个参数必须为数值类型

举例:

print(pow(2,3),2**3)输出8 8

print(pow(2,3,5),2**3%5)输出1 1

print(pow(2,-3))输出0.125

31.property(fget=None,fset=None,fdel=None,doc=None)本函数是设置类成员的属性。参数fget是获取类成员的属性值;参数fset是设置类成员的属性值;fdel是删除类成员;参数doc是设置属性的文档字符串。通过这个函数的方式,可以实现类成员变量隐藏的方式,也就是面向对象里封装的要求。

32.round(number[, ndigits])本函数是实现对浮点数进行四舍五入的计算。参数number是浮点数;参数ndigits是保留几位小数,默认值是0值。不过要注意的是转换出来的小数表示可能还是存在差异,最好使用库专用的数字来计算四舍五入运算。

举例:

print(round(3.666,2))输出3.67

print(round(2.632,2))输出2.63

print(round(2.63))输出2

33.setattr(object, name, value)本函数实现增加或设置对象object一个属性名称name,并设置这个属性的值为value。一般情况下与getattr()配套使用。

举例:

class A:

    pass

setattr(A,'foo',100)

print(A.foo)输出100

34class slice(stop)与class slice(start, stop[, step])函数实现切片对象,主要用在切片操作函数里的参数传递。start参数表示切片的起始位置,stop参数表示的是切片结束的位置,step参数表示的是切片的间距。

举例:

#class slice(stop)

ls = slice(5) #设置截取五个元素的切片

arr = list(range(10))

print(arr)输出[0,1,2,3,4,5,6,7,8,9]

print(arr[ls])输出[0,1,2,3,4]

#class slice(start, stop[, step])

ln = slice(2,8,2)

arrs = list(range(10))

print(arrs)输出[0,1,2,3,4,5,6,7,8,9]

print(arrs[ln])输出[2,4,6]

35.sorted(iterable[, key][, reverse])依据可迭代对象iterable中的元素返回一个排好序的列表reverse默认的缺省值为False,这时排序的方式为正序排序,设置为True则逆序排列。

举例:

a=[3,0,1,6,5,4,2]

print(sorted(a))输出[0,1,2,3,4,5,6]

print(sorted(a,reverse = False))输出[0,1,2,3,4,5,6]

print(sorted(a,reverse = Ture))输出[6,5,4,3,2,1,0]

36.super([type[, object-or-type]])本函数是实现访问父类或兄弟类对象,是返回一个代理类对象,以便访问父类或兄弟类的方法。使用这个函数主要用来避免在继承类时使用基类的类名称,以及多重继承时,保证只调用一次基类的构造函数。要注意的就是不能与调用基类名称方式混合使用。

举例:

class A:

    def __init__(self):

        print("__init__:A")

class B(A):

    def__init__(self):

        super().__init__()

        print("__init__:B")

b = B()输出__init__:A(创建B实类对象会自动调用构造函数)

__init__:B (如果没有super().__init__()这行代码,就只会输出__init__:B)

37.tuple([iterable])本函数实现从可迭代对象生成一个元组对象并返回。使用方法与list()类似,元组对象是一个不可修改的列表对象。

38.vars([object])本函数是实现返回object的属性和属性值的字典对象。如果默认不输入参数,就大印当前调用位置的属性和属性值,相当于locals()的功能。如果有参数输入,就只答应这个这个参数相应的属性和属性值。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值