Python第六课 日志、推导、迭代器

#日志
# import logging
# LOG_FORMAT="%(asctime)s-%(levelname)s-%(message)s"
# logging.basicConfig(filename="异常日志.txt",level=logging.DEBUG,format=LOG_FORMAT)
# #logging.basicConfig(level=logging.DEBUG,format=LOG_FORMAT)#控制台输出
# def test():
# try:
# a=int(input("请输入一个被除数:"))
# b=int(input("请输入一个除数"))
# print(a/b)
# return
# except (ValueError):
# #处理异常
# logging.debug("只能输出数字")
# except ZeroDivisionError:
# logging.info("除数不能为零")
# else:
# print("else.....")
# finally:
# print("程序结束")
# test()

推导
numbers=[x for x in range (100) if x%3==0] 第一个x是返回值
print(numbers)

def squared(x):
return x*x
multiples =[squared(i) for i in range(60) if i%3 is 0] #也可以返回一个函数
print(multiples)

#字典推导
mcase={'a':100,'b':50}
mcase_frequency = {a:b for a,b in mcase.items()}
print(mcase)

#集合
square={x**2 for x in [1,1,2]}
print(square)

aa=[i**2 for i in range(10) ]
print(aa)

#将单词长度大于3的转为大写输出
names =['bob','tom','alice','hsis','disd']
print([x.upper() for x in names if x.__len__()>3])

#求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇数组成的元组列表
S=[(x,y) for x in range(5) if x%2==0 for y in range(5) if y%2!=0]
print(S)

#求m中斜线1,5,9组成列表[1,5.9]
m=[[1,2,3],
[4,5,6],
[7,8,9]]
print([m[i][i] for i in range(len(m))])

#求m,n中矩阵元素的乘积
m = [[1,2,3],[4,5,6],[7,8,9]]
n = [[2,2,2],[3,3,3],[4,4,4]]
list = [[m[i][0]*n[i][0],m[i][1]*n[i][1],m[i][2]*n[i][2]] for i in range(len(m))]
print(list)


迭代器
class IteratorDemo:
def __init__(self,start=0,end=0):
self.start=start
self.end=end
def __iter__(self):
return self #返回自己本身
def __next__(self):
#得到当前指针start 让start位移
if self.start<self.end:
i=self.start #当前下标
self.start+=1 #获取下一次的下标
return i
else:
raise StopIteration()
it = IteratorDemo(0,5)
# print(it.__next__())
# print(it.__next__())
# print(it.__next__())
# print(it.__next__())
# print(it.__next__())
# for i in it:
# print(i)
#
# text=(x for x in range(10))
# print(text.__next__())

#实现裴波那切
def peibo():
a=b=1
print(a)
print(b)
for i in range(7):
yield (a+b) #yield 是停顿产生值 只是一次性的 在次生成时没有值
a,b=b,a+b
p = peibo()
print(p.__next__())
print(p.__next__())
print(p.__next__())

posted @ 2018-06-06 16:16  yuello  阅读(118)  评论(0)    收藏  举报