阅读目录:
函数
函数的使用
函数的分类
函数的返回值
##函数
##函数的定义-----what?----什么是函数: # 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 # -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名 # => 通过名字就可以找到工具 => 使用工具来解决问题
## 函数的优点-----why?------为什么要用函数: # 1. 避免代码的冗余 # 2. 让程序代码结构更加清晰 # 3. 让代码具有复用性,便于维护
##函数的组成部分(四部分): 1. 函数名:使用该函数的依据 2. 函数体:完成功能的代码块 3. 返回值:功能完成的反馈结果 4. 参数:完成功能需要的条件信息
# 定义函数的语法:通过def关键字来定义 def get_water(water, money): print('收入你的%d元钱') print('给你%s水种') return '矿泉水'
##函数的使用
# 使用函数: 1.根据需求定义函数 2.通过函数名找到函数所在的位置(内存地址) 3.函数名() 执行函数地址中存放的所有代码块 -- 函数在定义时需要外界的参数,就要在调用时传入对应的参数 4.函数执行完一定有返回结果,通过return关键字将结果返回给外界 -- 外界需要知道执行结果,用变量接收,反之只执行函数(不需要接收)即可 # 注:函数必须先定义,后使用 # 函数的四部分都可以根据需求的变化而变化 def get_water(water, money): print('收入你的%d元钱' % money) print('给你%s水种' % water) return water # 需要使用函数,就调用一次 res = get_water('矿泉水', 10) print(res) print('玩耍...') print('又口渴了...') # 又来需求,在调用一次,代码可以复用,函数只有一个,代码结构清晰且不冗余 res = get_water('王老吉', 20) print(res)
##函数的分类
# 1.根据函数体分类 # 空函数: pass来填充函数体的函数 # -- 优先明确函数名,暂不明确函数体(编程中就存在一些没有函数体的函数) def login(): pass # 在开发初期,可以讲所有功能提前列出来,用pass占位着,后期再去填充功能体 # 非空函数:有函数体的函数 def fn2(): print('函数体') # 2.根据函数参数分类 #无参函数 def add(): print('功能体不需要外界的参数') n1 = input('n1: ') n2 = input('n2: ') print(n1 + n2) # 有参函数 def add_two(n1, n2): print('功能体需要外界的参数') print(n1 + n2) # 3.根据函数返回值分类:所有的函数都有返回值 # 不明确返回值 def low_two(n1, n2): # 外部不需要知道内部的执行结果 print(n1 - n2) # 明确返回值 def jump_two(n1, n2): # 外部需要知道内部的执行结果 return n1 * n2 res = jump_two(10, 20) print(res)
##函数的返回值
# 重点:函数名() # 1)拿到函数地址 => 2)加()执行函数体 => 3)得到函数的执行结果 # 重点: 返回值的功能 1.结束函数; 2.将函数的内部数据返回给外部 # 二、应用场景 # 1.不明确return关键词的函数:系统在函数最末尾自动添加了return,返回的是None def fn1(): print('普通的函数执行') res = fn1() # 一般不需要对这样的函数进行接收执行结果 print(res) # 2.明确空return关键词的函数:为了结束函数而return def print_msg(): while True: msg = input("msg: ") if msg == 'q': # break return # 在特定的位置需要直接结束函数,但不需要告诉外界某个结果,用空return处理 print(msg) print(msg) # 在break下可以被执行,在return下不能被执行 res = print_msg() print(res) # 3.有明确的返回值需求的函数: # -- python中的函数本质上只能返回一个值, # -- 值跟在return关键词后 # -- 可以通过语法上返回多个值,值之间用逗号隔开,但是本质上返回装有多个值的元组 # 一个值 def get_num(): num = input('num: ') return num print(get_num()) # 多个值 def get_two_num(): n1 = input('n1: ') n2 = input('n2: ') return n1, n2 # return (n1, n2) # print(get_two_num()) num1, num2 = get_two_num() # python的return支持多值返回的语法原因是python中有解压赋值 print(num1, num2)