day_5.26python面试重点

Posted 吾皇万岁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day_5.26python面试重点相关的知识,希望对你有一定的参考价值。

列表生成式:

 

 1 \'\'\'
 2 2018-5-26 19:40:58
 3 生成器(generator):在Python中,这种⼀边循环⼀边计算的机制。
 4 \'\'\'
 5 # 第一种实现 :只要把⼀个列表⽣成式的[  ]改成(   )
 6 #这是一个生成式
 7 L = [x*2 for  x in range(5)]
 8 print(L)
 9 # for i in range(5)    for循环5次
10 G = (x*2 for x in range(5))
11 print(G)
12 \'\'\'
13 创建L和G的区别仅在于最外层的[   ]和(    ),
14 L是⼀个列表,⽽G是⼀个 ⽣成器。
15 我们可以直接打印出L的每⼀个元素,
16 但我们怎么打印出G的每⼀个 元素呢?
17 如果要⼀个⼀个打印出来,
18 可以通过next()函数获得⽣成器的下⼀个返回值
19 \'\'\'
20 #使用一个小小的while循环把生成器打印东西都储存到列表中
21 b = []
22 while True:
23     a = next(G)
24     print(a)
25     b.append(a)
26     break
27 \'\'\'
28 不用第三个变量完成变量交换
29 \'\'\'
30 a = 8
31 b = 5
32 a = a+b
33 b = a-b
34 a = a-b
35 #在python中
36 a,b = b,a
37 
38 #第二种实现,用函数方式实现
39 #斐波拉契数列
40 #只要函数里面有yield  则是一个生成器,是生成一个生成器的对象
41 def creatNum():
42     print("-----start-----")
43     a,b = 9,1
44     for i in range(5):
45         print("---1-----")
46         #让程序停了
47         yield  b
48         a,b = b ,a+b
49         print("-----3-----")
50     print("------stop__________")
51 print(creatNum()) #生成了一个对象
52 a = creatNum()
53 next(a)

 

 


以上是关于day_5.26python面试重点的主要内容,如果未能解决你的问题,请参考以下文章

python学习_day13___面试模拟真题讲解

Day481&482&483&484&485.尚硅谷之高频重点面试题① -面经

Day489.尚硅谷之高频重点面试题③ -面经

Day486.尚硅谷之高频重点面试题② -面经

Day492&493.尚硅谷之高频重点面试题④ -面经

Day495&496.尚硅谷之高频重点面试题⑤ -面经