函数基础之定义、使用、分类
1.什么是函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
2.为什么用函数
2.1 代码的组织结构不清晰,可读性差
2.2 遇到重复的功能只能重复编写实现代码,代码冗余
2.3 功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大
使用函数能够解决上述问题
3.怎么使用函数(先定义后使用)
3.1 定义函数
定义一个函数包括4部分:
1.函数名:是使用该函数的依据
2.函数体:完成功能的代码块
3.返回值:功能完成的反馈结果
4.参数:完成功能需要的条件信息
定义函数的语法(def关键词来声明函数):
def 函数名(参数1,参数2,参数3,...):
''注释'''
函数体
return 返回的值
3.2 使用函数
函数的调用:函数名加括号(先找到名字,根据名字调用代码)
函数名:拿到函数的地址
**函数名(): 拿到函数的地址,并执行函数中存放的代码块(函数体)
函数名(参数):执行函数并传入参数
函数名(): 执行完毕后,会得到函数的返回值,返回值就跟普通变量一样,可以直接打印、使用、运算
3.3 函数执行的本质:
4.函数的分类
4.1 根据参数列表分
无参函数:不需要外界资源
def start():
print('系统启动')
start()
-
有参函数:需要外键资源
def login(usr, pwd):
if usr == 'owen' and pwd == '123':
print('登录通过')
else:
print('登录失败')
login('owen', '123')
4.2 根据返回值划分:return是用来结束函数的
空返回:返回None
def demo(x, y):
print( x + y )
def demo(x, y):
print( x + y )
return # 用来结束函数(像break结束循环一样)
一值返回
def demo(x, y):
return x + y
多值返回
def demo(x, y):
# 本质就是返回装有多个值的元组
return x + y, x - y, x * y, x / y
5.函数的嵌套调用
函数的嵌套调用:在一个函数体重调用另一个函数
# 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行
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
# 求三个
def max_3(n1, n2, n3):
m2 = max_2(n1, n2)
return max_2(m2, n3)
# 求四个
def max_4(n1, n2, n3, n4):
m2 = max_2(n1, n2)
return max_3(m2, n3, n4)
# 循环调用:在一个函数的内部调用另一个函数