1、什么是函数
在程序中,具备某一功能的‘工具’指的就是函数
2、为何要用函数
随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织结构不清晰,可读性变差,且程序中需要频繁使用同一功能时,只能重复编写该功能的实现代码,日积月累,程序将变得冗长,并且当某一功能需要修改时,又不得不找出所有定义及使用这段功能的地方修改之,管理维护的难度极大
3、如何用函数
-
先定义
# 定义的语法 # 定义函数发生的事情 # 1、申请内存空间保存函数体代码 # 2、将上述内存地址绑定函数名 # 3、定义函数不会执行函数体代码,但是会检测函数体语法 def 函数名(参数1,参数2,...): """文档描述""" 函数体 return 值 # 调用函数发生的事情 # 1、通过函数名找到函数的内存地址 # 2、然后加括号就是在触发函数体代码的执行 # 示范1 def bar(): # bar=函数的内存地址 print('from bar') def foo(): print(bar) bar() print('from foo') foo() # 结果 <function bar at 0x00000248F0943F70> from bar from foo # 示范2 def foo(): print(bar) bar() print('from foo') def bar(): # bar=函数的内存地址 print('from bar') foo() # 结果 <function bar at 0x0000026B3ECF71F0> from bar from foo # 示范3 def foo(): print(bar) bar() print('from foo') foo() # 报错:name 'bar' is not defined def bar(): # bar=函数的内存地址 print('from bar')
# 三种定义方式 # 1.无参函数 def func(): # x # print( print('哈哈哈') print('哈哈哈') print('哈哈哈') print(func) # <function func at 0x00000216337C3F70> func() # 结果 <function func at 0x00000216337C3F70> 哈哈哈 哈哈哈 哈哈哈 # 2.有参函数 def func(x,y): # x=1 y=2 print(x,y) func(1,2) # 1,2 # 3.空函数 def func(x, y): pass # 什么都不做
-
后调用
# 三种调用方式 def foo(): print(132) def add(x,y): # 参数-》原材料 res=x + y return res # 返回值-》产品 # 1、语句的形式:只加括号调用函数 foo() # 132 add(1,2) # 调用add,返回res值 # 2、表达式形式: # 赋值表达式 res=add(1,2) print(res) # 3 # 数学表达式 res=add(1,2)*10 print(res) # 30 # 3、函数调用可以当做参数 # add(1,2)作为函数add的第一个参数, res=add(add(1,2),10) print(res) # 13
-
返回值
# 三种返回值的形式 # return是函数结束的标志,即函数体代码一旦运行到return会立刻终止函数的运行,并且会将return后的值当做本次运行的结果返回: 1、返回None:函数体内没有return def func(): return # return None res = func() print(res) # None 2、返回一个值:return 值 def func(): return 10 res=func() print(res) # 10 3、返回多个值:用逗号分隔开多个值,会被return返回成元组 def func(): return 10, 'aa', [1, 2] res = func() print(res, type(res)) # (10, 'aa', [1, 2]) <class 'tuple'>