23函数---函数介绍

要么做,要么不做,没有尝试这回事。
                            ——尤达(Yoda)

函数

有两个变量 xy ,当 x 取其变化范围中的每一个特定值时,相应地有唯一的 y 与它对应,则称 yx 的函数。记为 y = fx ),其中 x 为自变量, y 为因变量。

到目前为止,我们的 Python 代码已经实现了小的分块。它们都适合处理微小任务,但是我们想复用这些代码,所以需要把大型代码组织成可管理的代码段。代码复用的第一步是使用函数,它是命名的用于区分的代码段。函数可以接受任何数字或者其他类型的输入作为参数,并且返回数字或者其他类型的结果。

你可以使用函数做以下两件事情

  • 定义函数

  • 调用函数

什么是函数

所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用

函数的使用包含两个步骤:

  1. 定义函数 —— 封装 独立的功能
  2. 调用函数 —— 享受 封装 的成果

函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的 重用

函数的定义

定义函数的格式如下:

def 函数名():

    函数体
    ……
  1. def :表示函数的关键字,是英文 define 的缩写
  2. 函数名:函数的名称,后续根据函数名调用函数,函数名称应该能够表达函数封装代码的功能
  3. 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等...
  4. 函数名称的命名应该符合标识符的命名规则
    • 可以由 字母、下划线和数字组成
    • 不能以数字开头
    • 不能与关键字重名

函数调用

调用函数很简单的,通过 函数名() 即可完成对函数的调用

第一个函数演练

需求

  1. y = kx + b 封装成一个函数,其中 k=5 , b=6 , 假设 x=5
  2. 在函数下方调用线性方程函数,打印结果
"""
# 函数在数学组的表达形式
y = f(x)
y = kx + b
"""
x = 5

def f():
    
    y = 5 * x + 6
    print(y)

    
f()

用 单步执行 F8 和 F7 观察以下代码的执行过程

  • 定义好函数之后,只表示这个函数封装了一段代码而已
  • 如果不主动调用函数,函数是不会主动执行的

思考

  • 能否将 函数调用 放在 函数定义 的上方?
    • 不能!
    • 因为在 使用函数名 调用函数之前,必须要保证 Python 已经知道函数的存在
    • 否则控制台会提示 NameError: name 'f' is not defined (名称错误:f这个名字没有被定义)

函数的返回值

建立在之前的函数之上,如果想得到函数的计算结果,然后相加在进行输出改如何处理?例如在函数外部将函数 f 的结果加 10 再进行输出。

  • 函数的返回值

    函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

x = 5

def f():
    
    y = 5 * x + 6
    # return 关键字 返回一个内容
    return y
    
print(f() +y)
  • 程序运行到所遇到的第一个return即返回(退出def块),实现函数值的返回,不会再运行第二个return。返回时可附带一个返回值,由return后面的参数指定。

  • return 之后函数就结束了,不会再执行后续代码

带参数的函数

我们定义和调用一个没有参数的函数。假设需要求当 x 分别为 56 时,f(x) 的结果相加:

x = 5

def f(x):

    y = 5 * x + 6
    return y


print(f(5) + f(6))

多次调用产生不同的结果

带参数的函数有一个非常大的好处,通过修改调用函数传入的参数,从而得到不同的值。

def f(x):

    y = 5 * x + 6
    return y


f(5)
f(6)
f(7)

总结:

函数根据 有没有参数 以及 有没有返回值,可以 相互组合,一共有 4 种 组合形式

  1. 无参数,无返回值 None
  2. 无参数,有返回值
  3. 有参数,无返回值
  4. 有参数,有返回值

案例:

编写一个函数,求1+2+3+...+n

  1. 定义一个函数
  2. 函数接收一个参数 n
  3. 对1到n的数求和
  4. 打印和
def sum_test(n):
    sum  = 0
    for x in range(1,n+1):
        sum += x
    print(sum)

sum_test(10)
'''
55
'''

你可能感兴趣的:(23函数---函数介绍)