迭代器 生成器 装饰器 匿名函数

#可迭代对象:列表、字典、集合、字符串;能够被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))

































































猜你喜欢

转载自www.cnblogs.com/wyf2019/p/10951944.html