python-day10--函数介绍
# 函数 # 什么是函数: 能完成特定功能的工具,在Python中表示能完成特定功能的代码块。(函数定义) # 为什么要用函数 :①函数可以重复调用出来,效率高,而且维护成本低 ②使程序结构看起来清晰明了 ③避免重复写相同的代码。 # 这也是函数的优点 # -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名 # => 通过名字就可以找到工具 => 使用工具来解决问题 # # 函数的四大部分 # 函数名 :使用函数的依据 如print(函数名()) # 参数 :完成功能需要的的条件信息 # 函数体 :完成功能的代码块 # 返回值 :功能完成反馈的结果 # # 定义函数的语法:通过def关键字来定义
def get_water(water, money): print('收入你的%d元钱' % money) print('给你%s水种' % "水种") return '矿泉水'
# 函数的使用 (重要) # 使用函数 # ①根据需要定义函数 # ②通过函数名找到函数所在的位置(内存地址) # ③函数名()执行函数地址中存放的所有代码量 # ④函数执行完一定有返回结果,通过return将执行结果返回给外部,-外部需要接受执行结果 则用变量接受 反之只执行 # 注 :函数 先定义 后使用 # 函数的四个部分都是可以根据需求来改变的
def get_water(water, money): print('收入你的%s元钱' % money) # %s占位符 %s % x x给%s占位的地方 收入你的10元钱 收入你的20元钱
print('给你的%s的水' % water) # 给你的矿泉水的水 给你的王老吉的水
return water # 需要使用函数时就使用一次
res = get_water('矿泉水', 10) print(res) # 矿泉水 # 再次需要时再次使用函数
res_2 = get_water('王老吉', 20) print(res_2) # 王老吉
# 函数的分类 # 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) # 函数的返回值 (重点) # 函数名()的意义 # ①拿到函数地址==》②加()就是指执行函数体==》③得到执行的结果 例如get_water() # 返回值的功能 1:结束函数 2:将函数的内部函数反馈给外界 # 应用场景 # 1.不明确return关键词的函数:系统在函数最末尾自动添加了return,返回的是None
def fn1(): print('不需要的函数执行') res = fn1() # 一般不需要对这样的函数进行接收执行结果
print(res) # None
# 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)

更多精彩