python的基本函数及用法
Python3.6.x中内置函数总结及讲解Python3.6.x中内置函数总结
|
# -*- coding:utf-8 -*- """ abs() dict() help() min() setattr() all() dir() hex() next() slice() any() limod() id() object() sorted() ascii() enumerate() input() oct() staticmethod() bin() eval() int() open() str() bool() exec() isinstance() ord() sum() bytearray() filter() issubclass() pow() super() bytes() float() iter() print() tuple() callable() format() len() property() type() chr() frozenset() list() range() vars() classmethod() getattr() locals() repr() zip() compile() globals() map() reversed() __import__() complex() hasattr() max() round() delattr() hash() memoryview() set() """ from collections import Iterator,Iterable # abs(x) # 求绝对值 print ( abs ( - 1 ), abs ( 1 )) # all(iterable) # 如果iterable的所有元素都为真,则返回True(iterable为空,返回True) print ( all ([ 1 , 'a' ,[ 2 ]])) # True print ( all ([ 0 , 'a' ,[]])) # False print ( all ('')) # True # any(iterable) # 只要iterable中有一个元素为真,则返回True(iterable为空,返回False) print ( any ([ 1 ,[],''])) # True print ( any ([ 0 , 0.0 ,'',[],{}, set ()])) # False print ( any ([])) # False # ascii(s) # 只在Python3中支持,用于在不支持Unicode的平台查看Unicode字符串 # 就像repr()那样,创建对象的可打印形式,但在结果中只是用ascii字符,非ascii字符都转换为合适的转义序列。 print (ascii( 'hello你好' )) # 'hello\u4f60\u597d' # repr(obj) # 将其它类型数据转换为字符串,支持大部分内置数据类型 print ( repr ( 123 )) # 123 print ( repr ( 'hello 你好' )) # 'hello 你好' print ( repr ([ 1 , 2 , 3 ])) # [1, 2, 3] print ( repr ({ 'a' : 1 })) # {'a': 1} print ( repr ( object ())) # <object object at 0x7f4e9de470a0> # str(value='', encoding=None, errors='strict') # 转换为字符串 print ( str ()) # '' print ( str ( 666 )) # 666 print ( str ( 6.66 )) # 6.66 print ( str (b '666' )) # b'666' # bin(x) # 返回一个字符串,其中包含整数x的二进制形式 0b1010 print ( bin ( 0 ), bin ( 1 ), bin ( 10 )) # 0b0 0b1 0b1010 # class bool([x]) # 是class,返回True或False print ( bool (), bool ( 0 ), bool ( 1 ), bool (' '),bool(' abc'), bool ([]), bool ([ 1 ]), bool ( False ), bool ( True )) # False False True False True False True False True # class bytearray(source=None, encoding=None, errors='strict') # 返回一个字节数组,字符范围[0,255] print (bytearray( "hello 你好" , "utf-8" )) # bytearray(b'hello \xe4\xbd\xa0\xe5\xa5\xbd') # bytes(value=b'', encoding=None, errors='strict') # 返回字节类型,字符范围[0,255] print (bytes( "hello 你好" , "utf-8" )) # b'hello \xe4\xbd\xa0\xe5\xa5\xbd' # callable(o) # 返回True或者False,判断一个给定对象 o 是否是可调用对象 print ( callable ( 1 ), callable (''), callable ( str )) # False False True # chr(x) # 返回Unicode编码表中整数x对应的字符 print ( chr ( 65 ), chr ( 20001 )) # A 両 # ord() # 返回单个字符在Unicode码表中对应的整数编码 print ( ord ( 'A' ), ord ( '李' ), ord ( '永' ), ord ( '平' )) # 65 26446 27704 24179 # @classmethod() # 将一个普通函数转换为类方法,等价于@classmethond装饰器 class A(): def func01( * args): print ( 'classmethod()' , * args) classmethod (func01) @classmethod def func02(clz, * args): print ( '@classmethond' , * args) A.func01() A.func02() # 输出 # classmethod() # @classmethond # @staticmethod # 将一个普通函数转换为静态方法 class A(): def func01( * args): print ( 'staticmethod()' , * args) staticmethod (func01) @staticmethod def func02( * args): print ( '@staticmethod' , * args) A.func01() A.func02() # 输出 # staticmethod() # @staticmethod # compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) # 将字符串格式的源代码,编译为可以被exec()或eval()函数执行的代码code对象 # source:一个Python模块或多个代码块,或者是单一代码块,或者是一个表达式 # filename:运行时错误消息提示 # mode:与source对应,模块或多个代码块--"exec",单一代码块--"single",表达式--"eval" statements = """ print('-'*50) num=3 while num: print("hello") num-=1 print('-'*50)""" filename = "run-time error" codes = compile (source = statements,filename = filename,mode = "exec" ) print ( type (codes)) # eval(codes) exec (codes) # 输出 # <class 'code'> # -------------------------------------------------- # hello # hello # hello # -------------------------------------------------- # eval(expression, globals=None, locals=None) # 运行Python表达式字符串或者是经过compile()编译后生成的code对象 # obj可以是字符串对象或者已经由compile编译过的代码对象, # globals和locals是可选的,分别代表了全局和局部名称空间中的对象,其中globals必须是字典,而locals是任意的映射对象 print ( eval ( "2**3" )) # 8 print ( eval ( "type({'key':'value'})" )) # <class 'dict'> # exec(object[, globals[, locals]]) # 运行Python代码字符串或者是经过compile()编译后生成的code对象 statements = """ num=1 if num<3: print("1<3")""" exec (statements) # 1<3 exec ( 'print("exec")' ) # exec # class complex(real, imag=None) # 返回复数 c = complex ( 1 , 2 ) print (c,c.real,c.imag) c = complex ( '1+2j' ) # c=complex('1 +2j') # 报错ValueError,字符串中不能包含空格 # c=complex('1+2i') # 报错ValueError,复数虚部必须使用英文字母 j 表示 print (c,c.real,c.imag) # 输出 # (1+2j) 1.0 2.0 # (1+2j) 1.0 2.0 # delattr(obj,attr) # 等价于 del obj.attr # 删除对象obj的attr属性 class A: attr_01 = 1 attr_02 = 2 print (A.attr_01) delattr (A, 'attr_01' ) # print(A.attr_01) # AttributeError: type object 'A' has no attribute 'attr_01' print (A.attr_02) del A.attr_02 # print(A.attr_02) # AttributeError: type object 'A' has no attribute 'attr_02' # class dict(**kwarg) # class dict(mapping, **kwarg) # class dict(iterable, **kwarg) # 返回一个字典对象 print ( dict ()) # {} print ( dict (a = 2 ,b = 1 )) # {'b': 1, 'a': 2} print ( dict ([( 'a' , 1 ),( 'b' , 2 ),( 'c' , 3 )])) # {'a': 1, 'b': 2, 'c': 3} print ( dict ({ 'a' : 'A' , 'b' : 'B' })) # {'a': 'A', 'b': 'B'} # dir(obj) # 参数为空,返回当前作用域中的属性和方法列表 # 参数不为空,返回参数对象obj的作用域中的属性和方法列表 # 参数不为空,且该参数对象所属类中重载了 __dir__(self) 运算符,则返回 __dir__(self)的返回值 print ( dir ()) print ( dir ( int )) print ( dir ( dict )) class B(): def __dir__( self ): return [ '哼' , '哈' ] def func( self ): pass b = B() print ( dir (b)) # ['哈', '哼'] # limod(a,b) # 等价于 (a//b,a%b) # 返回长除法的商与余数组成的元组 print ( limod ( 10 , 3 ),( 10 / / 3 , 10 % 3 )) print ( limod ( 10 , 3.0 ),( 10 / / 3.0 , 10 % 3.0 )) print ( limod ( 10.0 , 3 ),( 10.0 / / 3 , 10.0 % 3 )) # (3, 1) (3, 1) # (3.0, 1.0) (3.0, 1.0) # (3.0, 1.0) (3.0, 1.0) # enumerate(i,start=0) # 根据给定iterable,返回枚举类型对象,是iterator类型 print ( list ( enumerate ( 'abc' ,start = 1 ))) for item in enumerate ( '123' ,start = 0 ): print (item) # 输出 # [(1, 'a'), (2, 'b'), (3, 'c')] # (0, 'a') # (1, 'b') # (2, 'c') # filter(function, iterable) # 过滤序列中的值 # filter函数将序列iterable中的每一个元素传入函数function中,如果返回值为真,则添加到结果集中;否则,过滤掉 # 如果function为None,则将iterable中值为True的元素添加到结果集中 data = [ - 1 , 0 , 1 , 2 , 3 , False ] res = filter ( lambda x:x> = 0 ,data) print (res) # <filter object at 0x7f97fe23f7b8> print ( list (res)) # [0, 1, 2, 3, False] res = filter ( None ,data) print ( list (res)) # [-1, 1, 2, 3] # class float([x]) # 生成浮点数,x为数字或者字符串 # inf:无穷 print ( float (), float ( 1 ), float ( '1' ), float ( '+1.23' ), float ( '+1E6' ), float ( '-Infinity' ), float ( ' -12345\n' )) # 0.0 1.0 1.0 1.23 1000000.0 -inf -12345.0 # format(value, [format_spec]) # 格式化显示value的值,类型为str # 如果format_spec为空,则等效于str(value) print ( format ( 123 )) # 123 print ( format ( True )) # True print ( format ({ 'a' : 1 , 'b' : 2 })) # {'a':1,'b':2} print ( format ( 123 , 'b' )) # 格式化为2进制 1111011 print ( format ( 123 , 'o' )) # 格式化为8进制 173 print ( format ( 123 , 'd' )) # 格式化为10进制 123 print ( format ( 123 , 'x' )) # 格式化为16进制,使用小写字母显示 7b print ( format ( 123 , 'X' )) # 格式化为16进制,使用大写在木显示 7B print ( format ( 123456789.123456789 , 'e' )) # 科学计数法,默认保留6位小数 1.234568e+08 print ( format ( 123456789.123456789 , '0.2e' )) # 科学计数法,保留2位小数 1.23e+08 print ( format ( 123456789.123456789 , 'E' )) # 科学计数法,1.234568E+08 print ( format ( 123456789.123456789 , '0.2E' )) # 科学计数法,1.23E+08 print ( format ( 123456789.123456789 , 'f' )) # 小数点计数法,默认保留6位小数,123456789.123457 print ( format ( 123456789.123456789 , '0.2f' )) # 小数点计数法,保留2位小数,123456789.12 print ( format ( 1.0e + 1000 , 'F' ), format ( - 1.0e + 1000 , 'F' )) # 小数点计数法,无穷大转换为字母 INF,-INF # class set([iterable]) # 获取一个set实例对象,可变,元素不重复 print ( set ()) # set() print ( set ( '123' )) # {'2', '3', '1'} # class frozenset([iterable]) # 返回一个frozenset实例对象,不可变,元素不重复 print ( frozenset ()) # frozenset() print ( frozenset ( '123' )) # frozenset({'2', '3', '1'}) # getattr(object, name[, default]) # 返回object的name属性值,name必须是str类型 # 如果不存在name属性,设置了default返回default值,否则,抛出异常AttributeError class A( object ): attr_01 = 'value_01' print ( getattr (A, 'attr_01' )) print ( getattr (A, 'attr_02' , 'value_02' )) # print(getattr(A,'attr_03')) # AttributeError: type object 'A' has no attribute 'attr_03' # hasattr(object, name) # 判断object是否拥有属性name,返回True或False print ( hasattr (A, 'attr_01' )) # True print ( hasattr (A, 'attr_02' )) # False # setattr(object, name, value) # 给object设置属性name,值为value setattr (A, 'attr_02' , 'value_02' ) print ( hasattr (A, 'attr_02' )) # True # globals() # 返回属于全局作用域的属性或者方法的字典表 print ( globals ()) # locals() # 返回属于本地作用域的属性和方法的字典表 print ( locals ()) def function(): a,b = 1 , 2 print ( locals ()) # {'b': 2, 'a': 1} function() # vars(object) # 返回任意对象的__dict__属性,前提是存在该属性 print ( vars ( int )) # hash(object) # 返回object的哈希值,大小相等的数字,哈希值一定相同 print ( hash ( 1 ), hash ( 1.0 )) print ( hash (A), hash (A())) print ( hash ( int ), hash ( hash )) # help([object]) # 调用内置的帮助系统 # object可以为空,module, function, class, method, keyword, or documentation topi # help() # import re # help(re) # help(hash) # help('class') # class int(x=0) # class int(x, base=10) # 将给定数据x从base进制转换为10进制int # x为数字或可转换为数字的字符串,base为数字x本来的进制 print ( int ( 255 )) # 255 print ( int ( '255' )) # 255 print ( int ( '255' ,base = 10 )) # 255 print ( int ( '255' ,base = 8 )) # 173 # oct(x) # 将10进制数x转换为8进制数 print ( oct ( 255 )) # 0o377 # hex(x) # 将一个int类型的数字转换为16进制 print ( hex ( 255 ), hex ( 0 )) # 0xff 0x0 # id() # 返回代表object身份的一个int数字,可以认为C语言中"对象的内存地址" print ( id ( 0 )) print ( id ( id )) # input([prompt]) # 接收用户的输入并返回字符串 # value=input('--->') # print(value) # print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) # *args:任意多个字符串 # sep:字符串之间的分割符,默认为空格 # end:结束符号,默认为换行 \n print ( 'a' , 'b' , 'c' ,sep = '$' ,end = '\n\n' ) # isinstance(object, classinfo) # 判断object是否是classinfo的一个实例 class A(): pass print ( isinstance ( 1 , int )) # True print ( isinstance (A(),A)) # True # issubclass(class, classinfo) # 判断class是否是classinfo的一个子类 class A(): pass class B(A): pass print ( issubclass (B,A)) # True # iter(object[, sentinel]) # 将一个可迭代对象转换为迭代器Iterator i = iter ( 'abc' ) print ( type (i)) # next(iterator[, default]) # 返回迭代器的下一个元素 # 如果没有下一个,返回default参数,如果没有default,抛出StopIteration异常 print ( next (i), next (i), next (i)) # print(next(i)) # StopIteration print ( next (i, '没有更多元素了' )) # len(iterable) # 返回iterable的元素个数 print ( len ( 'abc' )) # 3 print ( len ([ 1 , 2 , 3 ])) # 3 print ( len (( 1 , 2 , 3 ))) # 3 print ( len ({ 'a' : 1 })) # 1 print ( len ({ 1 , 2 , 3 })) # 3 # class list([iterable]) # 实例化一个list对象 print ( list ()) print ( list ( 'abcd' )) print ( list ( range ( 5 ))) # map(function, iterable, ...) # 在序列中映射函数:map函数会对一个序列对象中的每一个元素应用被传入的函数,并返回一个包含所有函数调用结果的映射集合 # res=map(lambda x:x,[1,2,3]) res = map ( lambda x,y:x + y,[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]) print ( type (res)) print ( list (res)) # max() # 返回给定序列中的最大值 print ( max ( 1 , 2 )) # 2 print ( max ([ 1 , 2 ])) # 2 print ( max ({ 'a' : 2 , 'b' : 1 })) # b print ( max ({ 'a' , 'b' })) # b # min() # 返回给定序列中的最小值 print ( min ( 1 , 2 )) # 1 print ( min ([ 1 , 2 ])) # 1 print ( min ({ 'a' : 2 , 'b' : 1 })) # a print ( min ({ 'a' , 'b' })) # a # memoryview(object) # 什么鬼?内存视图?C中的指针? view = memoryview(b 'abcd' ) print (view[ 0 ]) # 97 # class object # 返回一个object print ( object ) #<class 'object'> print ( object ()) # <object object at 0x7fc4731ef0c0> # open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) # 打开一个文件对象 # pow(x,y,[z]) # 2个参数时,等效于x**y # 3个参数时,等效于x**y%z print ( pow ( 10 , 3 )) # 1000 print ( pow ( 10 , 3 , 3 )) # 1 # class property(fget=None, fset=None, fdel=None, doc=None) # 不懂? # range([start,]stop[,sep]) # 生成数字列表 r = range ( 5 ) print ( type (r), isinstance (r,Iterator)) # <class 'range'> False for i in range ( 1 , 10 , 2 ): print (i,end = ' ' ) # 1 3 5 7 9 print ( '\n' ) # reversed(seq) # 翻转序列seq,返回Iterator i = reversed ([ 'a' , 'b' , 'c' ]) print (i) print ( next (i), next (i), next (i), next (i, '没有了' )) # round(number[, ndigits]) # 四舍五入 # ndigits为保留小数点位数,默认为0 print ( round ( 16 ), round ( 16.18 ), round ( 8.88 ), round ( - 8.88 )) # 16 16 9 -9 print ( round ( 16 , 1 ), round ( 16.18 , 1 ), round ( 8.88 , 1 ), round ( - 8.88 , 1 )) # 16 16.2 8.9 -8.9 # class slice(stop)¶ # class slice(start, stop[, step]) # 返回一个切片slice对象,表示步距,可用于切片操作,实际上对可迭代对象的切片操作就是调用了slice方法 print ( slice ( 5 )) # slice(None, 5, None) print ( slice ( 1 , 5 )) # slice(1, 5, None) print ( slice ( 1 , 5 , 2 )) # slice(1, 5, 2) seq = 'abcdefghj' print (seq[ slice ( 5 )]) # abcde print (seq[ slice ( 1 , 5 , 2 )]) # bd # sorted(iterable, *, key=None, reverse=False) # 对可迭代对象进行排序 # key为函数,依次作用于每个元素 # reverse为是否倒序排序 print ( sorted ( '872Aadbc' ,key = None ,reverse = True )) # ['d', 'c', 'b', 'a', 'A', '8', '7', '2'] print ( sorted ( '872Aadbc' ,key = lambda x : str .lower(x),reverse = True )) # ['d', 'c', 'b', 'A', 'a', '8', '7', '2'] # sum(iterable[, start]) # 求和:iterable中各元素之和,加上第二个参数start的值 # 第二个参数start默认为0 print ( sum ([ 1 , 2 , 3 ])) print ( sum ([ 1 , 2 , 3 ], 10 )) # super([type[, object-or-type]]) # 调用父类中的方法 class A( object ): def methond( self ): print ( '----A----' ) class B(A): def methond( self ): super (B, self ).methond() # 等价于 # super().methond() print ( '----B----' ) B.methond(B()) # tuple([iterable]) # 返回一个元祖对象,不可变的list print ( tuple ([ 'L' , 'O' , 'V' , 'E' , 'E' ])) # type(obj) # 返回obj的数据类型 print ( type ( 0 )) print ( type ('')) print ( type ([])) print ( type (( 0 ,))) print ( type ({})) # zip() # 创建一个迭代器,结果为俩个Iterable中各元素从开始位置开始的映射关系 # 如果2个Iterable中的元素个数不同,则舍弃比较多的元素 ziped = zip ( 'abcd' , '1234' ) print ( isinstance (ziped,Iterator)) # True print ( list (ziped)) # [('a', 'A'), ('b', 'B'), ('c', 'C'), ('d', 'D')] ziped = zip ( 'abc' , '1234' ) print ( list (ziped)) # [('a', '1'), ('b', '2'), ('c', '3')] ziped = zip ( 'abcd' , '123' ) print ( list (ziped)) # [('a', '1'), ('b', '2'), ('c', '3')] print ( list ( zip ( 'abc' ))) # [('a',), ('b',), ('c',)] print ( list ( zip ( 'abc' ,''))) # [] # __import__(name, globals=None, locals=None, fromlist=(), level=0) # 不常用的高级函数 # import importlib # importlib.import_module('module_name') |
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对开心学习网的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/topleeyap/article/details/79222771