zoukankan      html  css  js  c++  java
  • 迭代器 生成器 装饰器 匿名函数

    #可迭代对象:列表、字典、集合、字符串;能够被for 循环遍历的对象
    # 数字类型不可迭代;
    # name="wangyifei"
    # for i in name:
    # print(i,end=" ")
    # print()
    #
    # list=[11,22,33,44]
    # for i in list:
    # print(i,end=" ")
    # print()
    #
    # tuple=(1,2,3,4,5,6)
    # for i in tuple:
    # print(i,end=" ")
    # print()
    #
    # a=set("python")
    # for i in a:
    # print(i,end=" ")
    # print()
    #
    # info={"name":"laowang","age":30,"gnder":"保密"}
    # for i,j in info.items():
    # print(i,j)
    # print()
    #
    # for i in range(5):
    # print(i)


    #判断可迭代对象-Iterable;
    # from collections import Iterable
    # print(isinstance([11,22], Iterable))
    # print(isinstance((11,22),Iterable))
    # print(isinstance({11,22},Iterable))
    # print(isinstance("qwsdvdvg",Iterable))
    # print(isinstance(1234,Iterable))
    # print(isinstance(range(10),Iterable))

    # class MyList(object):
    # def __init__(self):
    # self.list=[]
    # def add(self,item):
    # self.list.append(item)
    # mylist=MyList()
    # mylist.add(1)
    # mylist.add(2)
    # mylist.add(3)
    # mylist.add(4)
    # print(mylist.list)
    # from collections import Iterable
    # print(isinstance(mylist,Iterable))


    # class MyList(object):
    # def __init__(self):
    # self.list=[]
    # def add(self,item):
    # self.list.append(item)
    # def __iter__(self):
    # pass
    # mylist=MyList()
    # mylist.add(1)
    # mylist.add(2)
    # mylist.add(3)
    # mylist.add(4)
    # print(mylist.list)
    # from collections import Iterable
    # print(isinstance(mylist,Iterable))

    #01;
    # alist=[66,88,99,123,1,6,789]
    # a_iter=iter(alist)
    # while True:
    # try:
    # print(next(a_iter))
    # except StopIteration: #StopIteration停止迭代的异常;
    # break


    #02
    # from collections import Iterator
    # print(isinstance([],Iterator))
    # print(isinstance(iter([]),Iterator))
    # print(isinstance(iter("wefrt"),Iterator))


    #03迭代器;
    # class DDQ(object):
    # def __init__(self,my_list):
    # self.my_list=my_list
    # self.current=0
    # def __iter__(self):
    # return self
    # def __next__(self):
    # if self.current < len(self.my_list):
    # item=self.my_list[self.current]
    # self.current+=1
    # return item
    # else:
    # raise StopIteration
    # if __name__ == '__main__':
    # my_list=[1,2,3,4,5,6,7,8]
    # from collections import Iterable
    # print(isinstance(my_list,Iterable))
    # ddq=DDQ(my_list)
    # for i in ddq:
    # print(i)



    #for循环的本质;
    # for 变量 in 可迭代对象
    # alist=[1,2,35,6,77,9]
    # a_iter=iter(alist)
    # while True:
    # try:
    # print(next(a_iter))
    # except StopIteration:
    # break

    #迭代器;斐波那契数列;
    # class Fei(object):
    # def __init__(self,n):
    # self.n=n #数列长度;
    # self.num1=0
    # self.num2=1
    # self.current=0 #记录索引位置
    # def __iter__(self):
    # return self
    # def __next__(self):
    # if self.current < self.n: #判断条件,如果索引位置小于数列长度做的事;
    # num=self.num1
    # self.num1,self.num2=self.num2,self.num1+self.num2
    # self.current+=1
    # return num
    # else:
    # raise StopIteration
    #
    # if __name__ == '__main__':
    # fei=Fei(10)
    # # for i in fei:
    # # print(i,end=" ")
    #
    # # ret=list(fei)
    # # print(ret)
    #
    # # ret=tuple(fei)
    # # print(ret)
    #
    # while True:
    # try:
    # print(next(fei))
    # except StopIteration:
    # break

    #可迭代对象构造;
    # class MyList(object):
    # def __init__(self):
    # self.list=[]
    # def add(self,item):
    # self.list.append(item)
    # def __iter__(self):
    # pass
    # mylist=MyList()
    # mylist.add(1)
    # mylist.add(2)
    # mylist.add(3)
    # mylist.add(4)
    # print(mylist.list)
    # from collections import Iterable
    # print(isinstance(mylist,Iterable))


    #迭代器列表,斐波那契数列;
    # class DDQ(object):
    # def __init__(self,mylist):
    # self.mylist=mylist
    # self.current=0
    # def __iter__(self):
    # return self
    # def __next__(self):
    # if self.current<len(self.mylist):
    # item=self.mylist[self.current]
    # self.current+=1
    # return item
    # else:
    # raise StopIteration
    # if __name__ == '__main__':
    # mylist=[66,88,99,123,456,789]
    # from collections import Iterable
    # print(isinstance(mylist,Iterable))
    # ddq=DDQ(mylist)
    # for i in mylist:
    # print(i,end=" ")

    #
    # class Fei(object):
    # def __init__(self,n):
    # self.n=n
    # self.num1=0
    # self.num2=1
    # self.current=0
    # def __iter__(self):
    # return self
    # def __next__(self):
    # if self.current<self.n:
    # num=self.num1
    # self.num1,self.num2=self.num2,self.num1+self.num2
    # self.current+=1
    # return num
    # else:
    # raise StopIteration
    # if __name__ == '__main__':
    # fei=Fei(10)
    # # for i in fei:
    # # print(i,end=" ")
    #
    # # while True:
    # # try:
    # # print(next(fei))
    # # except StopIteration:
    # # break
    #
    # # ret=list(fei)
    # # print(ret)
    #
    # # ret=tuple(fei)
    # # print(ret)


    #生成器;
    # a=[i for i in range(10)]
    # print(a)
    # #生成器是一类特殊的迭代器;
    # b=(i for i in range(10)) #生成器;
    # print(b)
    # # for i in b:
    # # print(i)
    # # print(list(b)) #元祖强转列表;
    # print(tuple(b))

    #斐波那契数列;
    # def fei(n):
    # num1,num2=0,1
    # current=0
    # while current<n:
    # num=num1
    # num1,num2=num2,num1+num2
    # current+=1
    # yield num
    # return
    # if __name__ == '__main__':
    # f=fei(10)
    # print(f)
    # # for i in f:
    # # print(i,end=" ")
    #
    # # print(list(f))
    #
    # while True:
    # try:
    # print(next(f),end=" ")
    # except StopIteration:
    # break


    #装饰器 无参
    # def outer(func):
    # def inner():
    # print("验证业务逻辑的完善")
    # func()
    # return inner
    # @outer
    # def f1():
    # print("hello worle")
    # f1()

    #有参数;
    # def outer(func):
    # def inner(a,b):
    # print("验证业务逻辑的完善")
    # func(a,b)
    # return inner
    # @outer
    # def f1(a,b):
    # print("hello world",a+b)
    # f1(1,2)


    #不定长参数;
    # def outer(func):
    # def inner(*args,**kwargs):
    # print("验证业务逻辑的完善")
    # func(*args,**kwargs)
    # return inner
    # @outer
    # def f1(a,b,c,d):
    # print("hello",a+b+c+d)
    # f1(1,2,3,4)


    #
    # def outer1(func):
    # def inner(*args,**kwargs):
    # print("111")
    # func(*args,**kwargs)
    # return inner
    # def outer2(func):
    # def inner(*args,**kwargs):
    # print("day2")
    # func(*args,**kwargs)
    # return inner
    # @outer1
    # @outer2
    # def f1(a,b,c,d):
    # print(a+b+c+d)
    # f1(1,2,3,4)


    #匿名函数

    # def add2num(a,b):
    # print(a+b)
    # add2num(10,20)

    #格式:lambda 形参:表达式(返回值和输出语句)
    # f=lambda x,y:print(x+y)
    # f(10,20)


    # def add2num(a,b):
    # return a+b
    # f=lambda a,b:a+b
    # print(f(10,20))

































































  • 相关阅读:
    改变网页字体的大小
    dom小练习
    各种交换机接口及连接方法介绍【详细图文】
    网线从路由器接出来, 再接一个路由器怎么设置?
    路由器后面再接一个路由器怎么设置(二级路由)
    设置无线路由器
    交换机与集线器的区别
    Java的位运算符具体解释实例——与(&amp;)、非(~)、或(|)、异或(^)
    无法识别的属性“targetFramework”。请注意属性名称区分大写和小写。错误解决的方法
    简单工厂模式
  • 原文地址:https://www.cnblogs.com/wyf2019/p/10951944.html
Copyright © 2011-2022 走看看