Python之匿名函数,循环
⼀匿名函数
定义:
匿名就是没有名字
lambda x,y,z:x+y+z #与函数有相同的作⽤域,但是匿名意味着引⽤计数为0,使⽤⼀次就释放,除⾮让其有名字
(lambda x,y,z:x+y+z)(1,2,3)
有名与匿名的对⽐:
#有名函数与匿名函数的对⽐
有名函数:循环使⽤,保存了名字,通过名字就可以重复引⽤函数功能
匿名函数:⼀次性使⽤,随时随时定义
应⽤:max,min,sorted,map,reduce,filter
⼆多层循环跳出
for
for 循环提供了python中最强⼤的循环结构(for循环是⼀种迭代循环机制,⽽while循环是条件循环,迭代即重复相同的逻辑操作,每次操作都是基于上⼀次的结果,⽽进⾏的)
遍历序列类型:
letter_list = ['a','b','c','d']
#通过序列项迭代
for i in letter_list:
print(i)
#通过序列索引迭代python index函数
for i in range(len(letter_list)):
print('index is {},letter is {}'.format(i,letter_list[i]))
#基于enumerate的项和索引
for i,letter in enumerate(letter_list,1):    # 1,代表索引从1,开始
print('index is {},letter is {}'.format(i,letter))
1 break_flag = False
2
3for i in range(10):
4
5print('--->A层',i)
6
7for j in range(10):
8print('------>B层',j)
9
10if j == 3:
11            break_flag = True
12break
13
14
15for k in range(10):
16print('--------->C层',k)
17if k == 3:
18                break_flag = True
19break
20
21if break_flag:
22break
23
24if break_flag:  #if break_flag == True 25print('C层结束,那都结束吧')
26break
27
28print('keep going ......')
for 多层
###运⾏结果
-
-->A层 0
------>B层 0
--------->C层 0
--------->C层 1
--------->C层 2
--------->C层 3
C层结束,那都结束吧
keep going ......
while
1 break_flag = False
2
3 count = 0
4while break_flag == False:
5print('--->爷爷层')
6
7while break_flag == False:
8print('------>爸爸层')
9
10while break_flag == False:
11            count += 1
12if count > 3:
13                break_flag = True
14
15print('-------->最后⼀层')
16
17
18print('keep going .......')
while 多层
###运⾏结果
--->爷爷层
------>爸爸层
-------->最后⼀层
-
------->最后⼀层
-------->最后⼀层
-------->最后⼀层
keep going .......
三九九乘法表
for
#-----1
for i in range(1, 10):
for j in range(1, i + 1):
print(j, 'x', i, '=', i * j , end='\t')
print()
#-----2
for i in range(1,10):
for j in range(1,10):
print(j,'x',i,'=',i*j,end='\t')
if i == j:
print('')
break
while i = 0
j = 0
while i<9:
i+=1
while j<9:
j+=1
print(j,'*',i,'=',i*j,end='\t')
if i == j:
print('')
j=0
break
补充:
i = 0
for i in range(5):
j = 0
flag = True
while j < 3:
print(i,j)
j += 1
if i==j:
flag = False
break
if flag == False:
break
##结果
0 0
0 1
0 2
1 0
1
def test4():
a = 1
yield a
b = 1
yield b
while True:
c = a+b
yield c
a = b
b = c
l = test4()
print(l.__next__())    #1
print(l.__next__())    #1
print(l.__next__())    #2
print(l.__next__())    #3
print(l.__next__())    #5
print(l.__next__())    #8
2