从0基础学习Python(10)[流程控制和*匿名函数[重]]

从0基础学习Python(Day10)

流程控制和*匿名函数[重]

1.流程控制关键字

  • break
  • continue
  • return
def fun():
    i = 0
    while i < 5:
        print("----while开始----")
        for j in range(5):
            print("----for开始----")
            print(i)
            return
            print(j*i)
            print("----for结束----")
        print("------for循环完-------")
        i += 1
        print("----while结束----")
    print("-------while循环完--------")
	
fun()
print("----程序执行完----")

2.匿名函数

1]目标

  1. 认识匿名函数
  2. 匿名函数的特点和语法格式
  3. 匿名函数的使用场景

2]认识匿名函数

​ 匿名函数是指在python中使用lambda来创建函数,称之为匿名函数

​ 创建函数不在使用def创建,而是使用lambda关键字创建一个形式主义的函数

3]匿名函数的定义

​ 函数签名+函数体

4]格式

lambda 参数1,参数2,参数3... : 单行表达式  或者  函数调用

5]匿名函数示例

# 无参无返回值函数
 def fun1():
     print("hello")
 fun1 = lambda : print("hello")
 fun1()

# 有参无返回值函数
 def fun2(str):
     print("hello%s" % str)
 fun2 = lambda str : print("hello%s" % str)
 fun2("aa")

# 无参有返回值函数
 def fun3():
     return "hello"
 fun3 = lambda : "hello"
 print( fun3())

# 有参有返回值函数
 def fun4(a):
     return "hello%s" % a
 fun4 = lambda  a :"hello%s" % a
 print(fun4("aa"))

 fun1()
 fun2("aa")
 print( fun3())
 print(fun4("aa"))

6]匿名函数的作用

  1. 可以通过匿名函数来实现标准函数的功能

  2. 可以作为一个函数的参数进行传递,将一个函数当成另一个函数的参数传递进另一个函数,这个做法在C#或其他技术中叫做委托

  3. (全局变量)一个函数只要被声明了,肯定在内存中存放好了,程序运行函数即被创建,内存被分配。直到整个文件执行结束才会被处理

    使用匿名函数传递只有当这个函数被传递的时候开始创建,内存分配,这个函数执行完毕,匿名函数就会像局部变量一样只在这个函数内部存在,函数执行完毕,匿名函数也被释放

  4. 还可以进行序列的排序、创建、筛选…

7]匿名函数的特点

  1. 匿名函数本质是一个表达式,不是代码块
  2. 匿名函数只能写一行代码
  3. 使用关键字lambda
  4. 如果有返回值数据则不需要书写return关键字
  5. lambda的函数要比def函数简单的多
    1. lambda中不能使用if语句、while语句、for循环,但是可以使用单行的表达式或函数调用
    2. lambda的返回结果不需要使用return
  6. lambda只能写一行,lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去

8]函数的本质

​ 函数本质是一个代码块集合,而函数名的作用是针对代码块集合的一个引用

​ 函数名可以理解为一个变量,这个变量里面引用的是函数主体所有代码

9]匿名函数使用场景

​ 一般在实际开发中有两种使用场景

​ 1.定义一个简单的单行函数

​ 2.一个函数要作为另一个函数的参数进行传递(重点)

Day10-------END

猜你喜欢

转载自blog.csdn.net/weixin_47766667/article/details/107616809