从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]目标
- 认识匿名函数
- 匿名函数的特点和语法格式
- 匿名函数的使用场景
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]匿名函数的作用
-
可以通过匿名函数来实现标准函数的功能
-
可以作为一个函数的参数进行传递,将一个函数当成另一个函数的参数传递进另一个函数,这个做法在C#或其他技术中叫做委托
-
(全局变量)一个函数只要被声明了,肯定在内存中存放好了,程序运行函数即被创建,内存被分配。直到整个文件执行结束才会被处理
使用匿名函数传递只有当这个函数被传递的时候开始创建,内存分配,这个函数执行完毕,匿名函数就会像局部变量一样只在这个函数内部存在,函数执行完毕,匿名函数也被释放
-
还可以进行序列的排序、创建、筛选…
7]匿名函数的特点
- 匿名函数本质是一个表达式,不是代码块
- 匿名函数只能写一行代码
- 使用关键字lambda
- 如果有返回值数据则不需要书写return关键字
- lambda的函数要比def函数简单的多
- lambda中不能使用if语句、while语句、for循环,但是可以使用单行的表达式或函数调用
- lambda的返回结果不需要使用return
- lambda只能写一行,lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去
8]函数的本质
函数本质是一个代码块集合,而函数名的作用是针对代码块集合的一个引用
函数名可以理解为一个变量,这个变量里面引用的是函数主体所有代码
9]匿名函数使用场景
一般在实际开发中有两种使用场景
1.定义一个简单的单行函数
2.一个函数要作为另一个函数的参数进行传递(重点)
Day10-------END