# Author Richard_Kong # !/usr/bin/env python # --*-- encoding:utf-8 --*-- """ 第三天的主要内容是 函数的解析 1、编程思想:面向对象 面向过程 函数式编程 2、为什么要使用函数式编程 3、函数的形参 实参 局部变量 返回值 嵌套函数 4、递归函数、匿名函数、高阶函数、内置函数 """ """ 函数是指 将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用执行这个函数名即可 使用函数编程的优点: 1、减少重复代码 2、使代码变的可扩展 3、使代码变得易维护 """ """ 函数式编程和面向过程编程的区别: 函数必须包含返回值 而过程不包含返回值,面向过程就是不包含返回值的函数编程 但是在Python中默认会给过程编程返回None return 一个对象 一个值 一个函数 1、当函数执行到return语句的时候,就会停止执行函数并返回执行结果,return代表函数的结束 2、如果未指定return 则函数返回值为None 为什么要有返回值 1、某些功能需要传递函数返回的参数,或者函数执行的结果 """ # 函数的定义 def func1(): print("function1") return "ok" # 过程的定义 def progress(): print("progress") def func2(): print("funct2") return func2 # 返回函数的内存地址 # 都可以调用函数名的方式执行 x = func1() y = progress() z = func2() # 函数返回 return的参数 print("function return is %s "%x) # 过程返回None print("progress return is %s"%y) print("function 2 return is %s"%z) z() # 内存地址的调用 # 形参和实参 # 定义的时候 不传递实际的参数叫形参 def cal(x,y): return x+y def de_func(x,d=3): return x + d # 调用的时候 传递实际的参数,叫实参 print(cal(10,3)) x = 23 y = 31 # 位置参数调用 和 关键字调用 # 关键字参数 是不能在位置参数之前的 print(cal(y=y,x=x)) print(cal(x=x,y=3)) print(cal(2,y=4)) # 默认参数的特点:默认参数非必须传递 # print(de_func(3,6)) """函数中的非固定参数的使用 有时候对于函数扩展,不确定以后要扩展的内容,所以预留不固定参数 *args是以元组的形式传递给参数的 """ # *args 会把多传入的参数变成一个元组形式 直接传递值就是传递位置参数 def Test(x,y,*args): z = x+y return z,args print(Test(1,21,3,4,5,6,7,3)) # *kwargs 会把多传入的参数变成一个dict形式 def Tes_kwargs(x,y,**kwargs): print(x,y,kwargs) return kwargs # 调用的时候必须传递变量名称及变量值,不能直接传递值,就是传递关键字参数 Tes_kwargs(1,2,province = "shandong",name = "richard") """函数中的局部变量和全局变量: 1、在在子程序中定义的变量称为局部变量 2、在程序一开始定义的变量称为全局变量 3、全局变量作用域是整个程序、局部变量作用域是定义该变量的子程序 """ def People(name,age): hight = 31 #这就是局部变量 print(name,age) hight = 13 #全局变量 People("haha",hight)
python3.5函数的解析形参、实参,非固定参数、变量
最新推荐文章于 2022-12-16 11:06:53 发布