-
Notifications
You must be signed in to change notification settings - Fork 0
/
171228shengchegnqi.py
96 lines (68 loc) · 1.61 KB
/
171228shengchegnqi.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#
#生成器 generator
#要创建一个generator有很多中方法 第一种 把列表生成式中的[]改成() 即可
L=[x*x for x in range(10)]
print (L)
# Laa=[x*x for x in range(11)]
# print (sum(Laa))
g=(x*x for x in range(1,11)if x%2==0)
#print (g)
print (next(g)) #基本上不会使用
#generator保存的是算法,每次调用next(g),就计算出g的下一个元素的值,直到计算到最后一个元素,没有更多的元素时,抛出StopIteration的错误。
# for x in g:
# print (x)
def test(max):
n,a,b=0,0,1
x,y,z=0,9,[9,1]
print (y)
test(2)
print('----------------')
#斐波拉基数列
def fib(max):
n,a,b=0,0,1
while n<max:
print(b)
a,b=b,a+b
n=n+1
return 'done_1'
#fib(7)
print('----------------')
def fib_new(max):
n,a,b=0,0,1
while n<max:
yield b
a,b=b,a+b
n=n+1
return 'dd'
#如果一个函数包含了yield 关键字 这就是一个generator
for x in fib_new(6):
print (x)
print('----------------')
def odd():
yield 1
yield 2
yield 3
odd()
#?????????
#如果发现拿不到return的返回值, 可以用捕获StopIteration错误,返回值保存在StopIteration 的vale中
g=fib_new(6)
while True:
try:
x=next(g)
print ('g:',x)
except StopIteration as e:
print ('Generator return value:',e.value)
break
#作业 输入杨辉三角
L=[1]
L1=[1]
jj=1
def triangles(num):
for x in num:
for y in x:
pass
#print(triangles())
print ('-----------------')
L=[]
L=range(5)
print (sum(L))