目标

  • 函数的概念
  • 函数的创建与调用
  • 函数的作用

[引入] 中学课本中,计算圆柱体积的数学公式为:V圆柱=hπr2。当知道圆柱的半径r和高h时,就可以根据公式计算出圆柱的体积。假设需要计算三个不同大小的圆柱体积:对应的半径r和高h——r1=3,h1=10;r2=4,h2=11;r3=5,h3=12。代码如下↓↓↓↓

import math
r1, r2, r3 = 3, 4, 5
h1, h2, h3 = 10, 11, 12
V1 = h1 * math.pi * r1**2
V2 = h2 * math.pi * r2**2
V3 = h3 * math.pi * r3**2
print(V1)
# 结果:282.7433388230814
print(V2)		
# 结果:552.9203070318035
print(V3)		
# 结果:942.4777960769379

[引发思考] 不知道大家是否有所注意!上面的代码中我们做了三次求圆柱体积,虽然r1、r2、r3,h1,h2,h3的值各不相同,但是三段代码并没有实质性的区别,属于重复代码。要想写出高质量的代码,首先要解决的就是重复代码的问题。对于上面的代码来说,可以将计算圆柱体积的功能封装到一个称为函数的代码块中,在需要计算圆柱体积的地方,我们只需要调用函数就可以了!哪什么是函数呢?

1、函数的概念

(1)概念:函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

(2)作用:函数能提高应用的模块性,和代码的重复利用率

(3)函数主要扮演两个角色:

  • 最大化代码重用和最小化代码冗余
  • Python的函数是一种简单的打包逻辑算法的方式。可以一处编写多处运行,是 Python 语言最基本的组成工具。
  • 过程的分解
  • 函数提供一种将一个任务分割为定义完好的不同部分的工具比如制作一份披萨,开始需要混合面粉,将面粉搅拌均匀,添加顶部原料和烘焙等。如果是设定给机器人来完成这件事,函数会将整个做披萨这个任务分割成为独立的方法
    来完成整个过程中的子任务。独立实现较小的任务要比一次 完成整个过程容易。
  • 一般来说,函数关注过程:关于如何做某事,而不是对哪些对象做这件事。

2、函数的创建与调用

(1)[引入] 数学中的函数通常形如y = f(x)一元一次函数或者z = g(x, y)一元二次函数这样的形式----->①在y = f(x)中,f是函数的名字,x是函数的自变量,y是函数的因变量;②而在z = g(x, y)中,g是函数名,xy是函数的自变量,z是函数的因变量。Python中的函数跟这个结构是一致的,每个函数都有自己的名字:自变量和因变量。我们通常把Python中函数的自变量称为函数的参数,而因变量称为函数的返回值

(2)语法:

def 函数名(参数1,参数2,参数3,……):
    代码1
    代码2
    ………………


  • ①函数代码块以def关键字开头,后接函数名(命名规则与变量的命名规则一致);

如果单词命名时可以采用以下方式:

  • 下划线:my_name
  • 小驼峰:myName
  • 大驼峰:MyName
  • ②任何传入的参数必须放在圆括号中间,圆括号之间可以用于定义参数。
  • ③函数的第一句可以选择性地使用注释说明此函数的作用;
  • ④函数内容以冒号起始,并且缩进
  • ⑤return[表达式]结束函数,选择性地返回一个值给调用放。不带return语句相当于返回None值。

(3)调用函数

函数名(参数)
  • 注意:
  • 不同的需求,参数可有可无。
  • 在Python中,函数必须先定义后使用

(4)实操函数的创建与调用

  • [简单示例]
# 定义名为my_function函数,传入两个参数,并将参数打印出来。
def my_function(a, b):
    print(a, b)

# 调用函数,并传入参数
my_function(11,22)

# 结果
11 22
  • 使用函数解决上述圆柱体积的问题
# 定义函数:def是定义函数的关键词,fac是函数,r是参数(自变量)。
from math import pi 
def Volume(r, h):
    """求圆柱的体积"""
    V = h * pi * r**2
    # 返回圆柱的体积(因变量)
    return V

# 当需要计算圆柱体积时,不用重复写代码,仅仅直接调用函数Volume()即可
print(Volume(3, 10))

# 结果
282.7433388230814