目录
一、函数的定义
二、函数的组成部分
三、如何使用函数
四、函数的分类
五、函数的嵌套调用
一、函数的定义
函数课前须知: 1.什么是函数 在程序中函数就是具备某一功能的工具 2.为何用函数 为了解决以下问题 1.程序的组织结构不清晰,可读性差 2.代码冗余 3.扩展性差
函数的定义: 》》》1.重复利用的工具 2.可以完成特定功能的代码块,函数就是存放代码块的容器 def 函数名(参数1,参数2,...): '''注释''' 函数体 # 具体逻辑代码 return '返回值' 注意: 1.函数必须原则:先定义,后调用 2.函数名存放的是函数地址
二、函数的组成
函数的四个部分组成: 函数名:使用该函数的依据 函数体:完成功能的代码块 返回值:功能完成的反馈结果 参数:完成功能需要的条件信息
三、如何使用函数
# return函数的返回值: def fn(money): print("你付%s元" % money) print("执行函数的第一行") print("执行函数的第二行") return "coffe" print(fn, fn(id)) # 如果直接打印fn 只能看函数代码的内存地址 # def: 声明函数的关键词 #1. fn: 函数(变量)名 #2. (): 参数列表,参数个数可以为0~n个,但()一定不能丢 #3. 函数体: 实现功能的具体代码 #4. return: 函数的返回值 # 2.使用函数:函数名() fn(20) # 调用函数,完成整个过程 print("把水喝了") msg=fn(20) print(">>>",fn(20)+"真香") # 函数的返回值也称之为函数值,就是函数执行结束后的结果 # 可以用变量接受 | 可以直接打印 | 可以直接使用 # 函数执行的本质:执行函数体,得到函数返回值
四、函数的分类’
4.1 根据返回值划分
# 空返回 1.没有return 的函数 2.空 return def fn1(): print("fn1 run!!! ",end='') res = fn1() print("没有return的关键字的返回值:%s"%res) def fn2(): print("fn2 run!!! ",end='') return # return None # 约等于 不写 res = fn2() print("空return关键字的返回值:%s"%res)
# 有值返回 3.return一个值 4.return多个值 # 一个值的返回 def add_num(n1,n2): return n1+n2 print(add_num(10,15)) def computed(n1,n2): # 返回四则运算的结果 r1 = n1 +n2 r2 = n1 -n2 r3 = n1 *n2 r4 = n1 /n2 return [r1,r2,r3,r4] a,b,c,d =computed(50,25) print(a,b,c,d) # 多个值的返回:本质就是返回装有多个值的元组 def computed_sup(n1, n2): # 返回四则运算的结果 r1 = n1 + n2 r2 = n1 - n2 r3 = n1 * n2 r4 = n1 // n2 return (r1, r2, r3, r4) res = computed_sup(50,25) # 装有所有的结果 print(res)
4.2 从参数列表进行分类
# 无参函数:函数体运行不需要外界体用参数 def print_msg(): print("hello world!") print_msg() # 有参函数:函数体运行需要外界体用参数 def school_msg(name): print("%s到此一游!" % name) name = input("名字:") school_msg(name)
五、函数的嵌套调用
5.1 函数嵌套调用定义
def fn1 (): print("fn1 run") fn2() def fn2 (): print("fn2 run") fn3() def fn3 (): print("fn3 run") # fn1() # 注意执行流程:执行fn1,打印"fn1 run",再调用fn2,打印"fn2 run", # 再调用fn3,打印"fn3 run",再返回fn2,执行完返回fn1,最后结束程序 # 注: 1. 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行 2. 在fn1中调用fn2,所以在调用fn1的逻辑应该在fn2定义之后
5.1 求两个数的最大值
# 案例:用函数实现获取两个数的最大值 """ def max_2(n1,n2): if n1>n2: return n1 return n2 print(max_2(3,100))
5.2求三个数的最大值
#获取三个数的最大值 def max_3(n1,n2,n3): if n1>n2 and n1>n3: return n1 if n2> n1 and n2> n3: return n2 return n3 print(max_3(4,100,60)) #简单的 def max_3(n1,n2,n3): m2 = max_2(n1,n2) return max_2 (m2,n3) print(max_3(3,70,500))
作业
with open 用函数复制指定文件
""
1.可以循环登录注册,输入1代表选择登录功能,输入2代表注册功能,输入0代表退出,其他输入代表输入有误,重输
2.用户的账号密码信息存放在usr.txt文件中,保证用户注册成功后,重启系统,用户信息仍然保存
3.登录在账号验证通过才输入密码验证登录,账号验证三次失败自动进入注册功能,登录三次验证失败自动退出系统
4.第一次注册,文件写入 账号:密码 信息,再次注册追加写入 |账号:密码 信息
"""