zoukankan      html  css  js  c++  java
  • 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)
    
    
    #通过序列索引迭代
    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 
     3 for i in range(10):
     4 
     5     print('--->A层',i)
     6 
     7     for j in range(10):
     8         print('------>B层',j)
     9 
    10         if j == 3:
    11             break_flag = True
    12             break
    13 
    14 
    15         for k in range(10):
    16             print('--------->C层',k)
    17             if k == 3:
    18                 break_flag = True
    19                 break
    20 
    21         if break_flag:
    22             break
    23 
    24     if break_flag:  #if break_flag == True
    25         print('C层结束,那都结束吧')
    26         break
    27 
    28 print('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
     4 while break_flag == False:
     5     print('--->爷爷层')
     6 
     7     while break_flag == False:
     8         print('------>爸爸层')
     9 
    10         while break_flag == False:
    11             count += 1
    12             if count > 3:
    13                 break_flag = True
    14 
    15             print('-------->最后一层')
    16 
    17 
    18 print('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=' ') print() #-----2 for i in range(1,10): for j in range(1,10): print(j,'x',i,'=',i*j,end=' ') 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=' ') 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
  • 相关阅读:
    powerdesigner添加mysql的字符集ENGINE和DEFAULT CHARACTER SET
    powerdesigner怎么设置同时显示name和code
    更改gradle的java的class文件输出目录的结构
    使用TortoiseGit时如何实现SSH免密码登录
    TortoiseGit之配置密钥
    Mock InjectMocks ( @Mock 和 @InjectMocks )区别
    Centos tomcat jmx 远程连接
    【C++】常见易犯错误之数值类型取值溢出与截断(3)
    【C++】常见易犯错误之数值类型取值溢出与截断(2)
    【C++】常见易犯错误之数值类型取值溢出与截断(1)
  • 原文地址:https://www.cnblogs.com/zhaochangbo/p/6705530.html
Copyright © 2011-2022 走看看