GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — python_test/test6.py at master · sinferwu/python_test

Expand file tree

/

test6.py

Copy path
More file actions
More file actions

Latest commit

 

History

History
History
68 lines (54 loc) · 1.74 KB
/

test6.py

Copy path

File metadata and controls

68 lines (54 loc) · 1.74 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
# 练习生成式,生成式就是将列表生成式的中括号改成小括号即可
g = (x for x in range(1,20))
print(g) # 这是个generator对象
print(next(g)) # 不断使用next来进行获取下一个数,当获取到最后一个数时会抛出StopIteration错误
# 可见这种方法对于列表相当大时,就可以节约内存,同时他也可以用for循环来获取元素
for x in g:
print(x)
# 使用yield来定义一个生成器的函数
def odd():
print('yield 1')
# yield就是一个关键字,用来生成生成器
# 每执行一个next函数时,就会运行到一个yield处,把该值返回
yield 1
print('yield 2')
yield 2
print('yield 3')
yield 3
o = odd()
# 他是生成器,所以可以通过next来获取数
print(next(o))
print(next(o))
print(next(o))
# next(o)
# 使用yield来编写斐波那契数列
def fib(n):
a, b = 0, 1
while n > 0:
# 第一和第二个数都是1
yield b
a, b = b, a+b
n -=1
return 'done'
num = fib(6)
# 因为是生成器,所以可以通过for循环来获取元素
for x in num:
print(x)
# 作业:有一个杨辉三角,把每一行看做一个list,试写一个generator,不断输出下一行的list:
def triangles(n):
l = [1]
# 记录第几行,同时知道有多少个元素
num = 1
while num <= n:
# 使用切片是避免两个变量指向同一个列表,从而影响了下面操作
L = l[:]
yield L
num += 1
if len(l) > 1:
for d in range(1, num-1):
l[d] = L[d] + L[d-1]
l[0] = 1
l.append(1)
t = triangles(10)
for x in t:
print(x)
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.