一、函数名
1、函数的概念:
- 可以完成特定功能的代码块,函数就是存放代码块的容器
2、函数的定义:
函数的四个组成部分:
- fn:函数(变量)名
- ():参数列表,参数个数可以为0~n个,但()一定不能丢
- 函数体:实现功能的具体代码
- return:函数的返回值
def:声明函数的关键词
- 函数名:拿到函数的地址
- 函数名():拿到函数的地址,并执行函数中存放的代码块(函数体)*
- 函数名(参数):执行函数并传入参数
def fn(num): print("传入的num值:%s" % num) return("收到了") # fn直接打印,只能看到函数存放代码的地址 print(fn, id(fn)) # 函数的返回值也称之为函数值,就是函数执行结束后的结果 # 可以用变量接收 | 可以直接打印 | 可以直接使用 msg = fn(10) print(msg) print('>>>>', fn(10) + '好喝') # 函数执行的本质:执行函数体,得到函数返回值
重点:先定义后使用
def computed(): pass
2、非空函数:用函数体
def add_num(n1,n2): ''' 函数的注释 :param n1: 第一个数 :param n2: 第二个数 :return: 两个数之和 ''' return n1 +n2
def print_msg(): print("欢迎大家来到老男孩教育,奉献你的余生!!!") print_msg()
2、有参函数:函数体运行需要外界提供参数
def print_school_msg(p1, p2): print("欢迎%s和%s领导莅临老男孩教育,敞开你的腰包!!!" % (p1, p2)) p1 = input("输入一号领导名:") p2 = input("输入二号领导名:") print_school_msg(p1, p2)
def fn1(): print('fn1 run!!!') res = fn1() print('没有return关键字的返回值:%s' % res) # None
2、空return:可以根据具体情况注定退出函数(像break结束循环一样)
def fn2(): print('fn2 run!!!') res = fn2() print('空return关键字的返回值:%s' % res) # None
无return函数与空return函数的区别
def add_num(n1, n2): return n1 + n2 print(add_num(10, 15))
2、return多个返回值:本质就是返回装有多个值的元组
def computed_sup(n1, n2): # 返回四则运算的结果 r1 = n1 + n2 r2 = n1 - n2 r3 = n1 // n2 r4 = n1 ** n2 return r1, r2, r3, r4 a, b, c, d = computed_sup(50, 25) res = computed_sup(50, 25) # 得到的是装有所有结果的元组 print(res)
重点:定义函数的思想
# 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行 def fn1(): print('fn1 run') fn2() def fn2(): print('fn2 run') fn3() def fn3(): print('fn3 run') # 注:在fn1中调用了fn2,所以调用fn1的逻辑应该在fn2定义之后 fn1()
案例:
#用函数获取两个数的最大值 def max_2(n1, n2): if n1 > n2: return n1 return n2 print(max_2(200, 30)) # 获取三个数的最大值 def max_3(n1, n2, n3): m2 = max_2(n1, n2) return max_2(m2, n3) print(max_3(300, 30, 30)) # 获取四个数的最大值 def max_4(n1, n2, n3, n4): m2 = max_2(n1, n2) return max_3(m2, n3, n4) print(max_4(10,30,20,0))