函数基础一

                                                                          函数

        现实中 很多问题要通过一些工具进行处理=>可以提前将工具生产出来并命名=>通过名字就可以找到工具=>使用工具来解决问题。

函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数;

函数的优点:1.避免函数的冗余;

      2.让代码结构更清晰;

      3.让代码更具有复用性,便于维护。

函数组成: 1.函数名:使用函数的依据

       2.函数体:完成函数的代码块

                    3.返回值:功能完成的反馈结果

       4,参数:完成功能需要的条件信息

定义函数的语法:通过def 关键字来定义

                          eg:def get_water(water, money):

                                         print('收入你的%d元钱')
                                         print('给你%s水种')
                                         return '矿泉水'

函数的使用: 1.根据需求定义函数                          必须先定义,后使用

        2.通过函数名找到函数所在的位置(内存地址)

         3.函数名()执行函数地址中放的说有代码块
         -- 函数在定义时需要外界的参数,就要在调用时传入对应的参数

                         4.函数执行完一定有返回结果,通过return关键字将结果返回给外界

                           -- 外界需要知道执行结果,用变量接收,反之只执行函数(不需要接收)即可

eg:函数的四部分都可以根据需求的变化而变化
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)

原文地址:https://www.cnblogs.com/wyf20190411-/p/10765132.html