2020-06-15 目录:
一、函数
1.1 什么是函数?
1.2 为什么要用函数?
1.3 如何用函数?
1.3.1 函数的基本使用
1.3.2 先定义,后调用
1.3.3 定义函数的三种形式
1.3.4 调用函数的三种形式
二、函数的返回值
三、函数参数的详细使用
一、函数
1.1 什么是函数?
程序中具有某一功能的工具,即为函数
事先准备工具的过程,即为函数的定义
遇到应用场景拿来就用,即为函数的调用
1.2 为什么要用函数?
对于内置函数,也就是python3解释器定义好的,拿来用即可
对于自定义函数,可以带来三点便利:
① 增强程序的组织结构性,提升可读性
② 简洁,减少代码冗余
③ 提升程序的可维护性与扩展性
1.3 如何用函数?
定义函数的语法: def 函数名(参数1,参数2,参数3): ''' 文档注释 ''' 代码1 代码2 代码3 ... return 值 调用函数的语法: 函数名(值1,值2,值3)
1.3.1 函数的基本使用
def login(): # login = 存放代码的那个内存空间的内存地址,类似于x=10 name = input("your name>>: ") pwd = input("your pwd>>: ")if name == "egon" and pwd == "123" : print('login successful') else: print("user or password error") print(login) # >>> <function login at 0x0000020B7EA251F0>,(函数的地址) login() # 调用函数 login() # 调用函数
1.3.2 先定义,后调用
函数的使用分为两个阶段:
① 定义阶段:申请内存空间把代码存放进去,然后将内存地址绑定给函数名
② 调用阶段:通过函数名找到函数体代码,加括号触发函数体运行
PS:函数定义阶段不执行代码只识别语法,只有在调用阶段才执行代码
如:
def f1(): print('from f1') f2() # 函数定义时不运行,所以不会报错 def f2(): print('from f2') f1()
1.3.3 定义函数的三种形式
① 无参函数 (函数体代码运行逻辑不需要外来数据) def login(): name = input("your name>>: ") pwd = input("your pwd>>: ") if name == "egon" and pwd == "123" : print('login successful') else: print("user or password error") login()
② 有参函数 def max2(x,y): # 函数的运行依赖外来数据x,y if x > y: print(x) else: print(y) max2(10,11) # 相当于把10赋值给x,11赋值给y来运行
③ 空函数 def login(): pass # 函数体暂时为空,用来作为预留代码的框架 def register(): pass
1.3.4 调用函数的三种形式
def max(x, y): if x > y: return x else: return y
① 语句形式:(单纯的调用)
max(10,12) # 类似于print('hello')调用print函数一样
② 表达式形式:
x = max2(1, 2) res = max2(1, 2) * 10 print(x)
print(res)
③ 可以当做参数传给另外一个函数:
res = max(11, max(10,12)) print(res)
二、函数的返回值
① 函数体内没有return,或者return后面没有值:默认返回None
② return 值:返回的就是这个值 def func(): return 123 res = func() print(res) # >>>123
③ return 值1,值2,值3 : 返回一个元组(值1,值2,值3) def func(): return 123, "abc", 3.1 res = func() print(res, type(res)) # >>>(123, 'abc', 3.1) <class 'tuple'>
PS:函数内可以有多个return,return是函数结束的标志,函数体代码但凡运行到一个 return 就会立刻终止整个函数的运行,
然后将return后的值当做本次调用的产品返回
三、函数参数的详细使用
3.1 形参与实参
函数的参数分为两大类:形参与实参
3.1.1 形参
在定义函数阶段,括号内指定的参数,称之为形式参数,简称形参 形参相当于定义在函数内的变量名,用于接收外部传进来的值
def func(x,y): # x和y即形参 print(x) print(y) func(10,11)
3.1.2 实参
在调用函数阶段,括号内传入的值,称之为实际参数,简称实参 实参相当于变量值,用于为形参赋值的
def func(x,y): print(x) print(y) func(10,11) #10和11即为实参
ps: 在函数调用时,会将实参的值绑定给形参,这种绑定关系只能在函数内使用,
在函数调用完毕后,实参与形参会解除绑定,回收占用的内存空间