python内置方法

    xiaoxiao2021-04-15  281

    1).基本内置函数:

    1、all函数,判断对象,如果全为True,则返回True print(all(["dsfcnzlk",112,"ksjf"])) #True 2、可迭代对象中或者集合中,有任意一个数据为真,则返回True print(any([35,1,0,59])) #True 3、ascii函数 print( ascii('runoob')) #'runoob' 4、将十进制转化为二进制 print(bin(5466)) #0b1010101011010 5、布尔方法 print(bool([12])) #0b1010101011010 6、字节数组 a=bytes("abcdejdskfh",encoding="utf-8") print(a) b=bytearray("abdaidi",encoding="utf-8") print(b[0]) #0b1010101011010 #b'abcdejdskfh' #97 7、判断是否可调用 def func(x,y,f): return f(x)+f(y) print(func(-1,5,abs)) print(callable(func)) #6 #True 8、利用数字得到ASCII码对应字符 print(chr(54)) #6 9、利用字符得到ASCII对应的数字 print(ord("s")) #115 10、查看对象方法 print(dir([])) ''' ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] ''' 11、地板除 print(divmod(10,3)) #(3, 1) 12、enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。 for i,j in enumerate([1,23,5,46,7]): print(i,j) #0 1 #1 23 #2 5 13、将字符串变为可执行语句 print(eval("3*4")) #只能执行简单语句 #print(eval('''for i in range(5):print(i)''')) #只能执行简单语句,所以会报错 exec('''for i in range(5):print(i)''') #可执行复杂语句 #12 #0 #1 #2 #3 #4 14、过滤数据 y=lambda x:abs(x) print(y(-7)) print((lambda x:x if x<5 else 5)(1)) # filter,将满足情况的结果输出 #map,将判断结果输出 ve=filter(lambda n:n>5,range(10)) for i in ve: print(i) re=map(lambda n:n>5,range(10)) for i in re: print(i) ''' 7 1 6 7 8 9 False False False False False False True True True True ''' 15、functools.reduce()函数 ''' reduce() 函数会对参数序列中元素进行累积。 函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。 reduce() 函数语法: reduce(function, iterable[, initializer]) 参数 function -- 函数,有两个参数 iterable -- 可迭代对象 initializer -- 可选,初始参数 ''' import functools res=functools.reduce(lambda x,y:x*y,range(1,10)) print(res) #362880

    2).生成器、迭代器

    迭代器

    迭代是是访问集合元素的一种方式。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。 迭代器有两个基本的方法:iter() 和 next()。 集合数据类型,列表,元组,字典,字符串都可以用于创建迭代器。

    '''可直接用于for循环的对象是可迭代对象''' from collections import Iterable print(isinstance([],Iterable)) #判断该对象是不是可迭代对象 print(isinstance("aba",Iterable)) print(isinstance({},Iterable)) print(isinstance((x for x in range()),Iterable)) print(isinstance(100,Iterable)) ''' True True True True False ''' '''可直接用于for循环,并且可以使用next()返回写一个值得对象成为迭代对象''' #Iterator #迭代器 from collections import Iterator print(isinstance([],Iterator)) #可判断该对象是不是迭代器 print(isinstance("jsfh",Iterator)) print(isinstance({},Iterator)) print(isinstance((x for x in range(10)),Iterator)) print(isinstance(100,Iterator)) ''' False False False True False ''' #可迭代对象不一定是迭代器 from collections import Iterator print(isinstance(iter([]),Iterator)) print(isinstance(iter("jsfh"),Iterator)) print(isinstance(iter({}),Iterator)) print(isinstance((x for x in range(10)),Iterator)) print(isinstance(100,Iterator)) ''' True True True True False '''
    生成器

    在 Python 中,使用了 yield 的函数被称为生成器(generator)。 生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。 在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。 调用一个生成器函数,返回的是一个迭代器对象。

    3).序列化

    '''序列化(反序列化)''' info={1:2,3:4,5:6,7:8} f=open("test","w") f.write(str(info)) f.close() f=open("test","r") data=f.read() f.close() print(data[6]) #标准序列化 import json info={"name":"slg","age":18} f=open("test","w") f.write(json.dumps(info)) f.close() #josn是通用型序列化方式,用于不同语言之间的数据交互 #标准反序列化 import json f=open("test","r") data=json.loads(f.read()) f.close() print(data["name"]) import json def sayhi(name): print("hello s%" % name) info={ "name":"slg", "age":18, "func":"sayhi" } f=open("test","w") f.write(json.dumps(info)) f.close() #Python特有的pickle的方式序列化 import pickle def sayhi(name): print("hello %s" % name) info={ "name":"slg", "age":18, "func":sayhi } f=open("test","wb") #f.write(pickle.dumps(info)) pickle.dump(info,f) f.close import pickle def sayhi(name): print(name) f=open("test","rb") #data=pickle.loads(f.read()) data=pickle.load(f) print(data["func"]("liang"))

    最新回复(0)