跳至内容

Python 函数

函数是一个执行特殊任务的代码块。

比如,有一个任务:绘制一个五角星,然后涂上黄色。要解决这个问题,我们需要拆解为两个函数(步骤):

  1. 创建一个绘制五角星函数
  2. 创建一个着色函数

复杂问题拆解为更小的单元在计算机编程中被称为"分治法",通过这种方法可以将复杂问题简单化,同时方便模块的理解与复用。

函数类型

Python编程中,函数有两种类型:

  • 标准库函数 - Python中内置函数。
  • 用户定义函数 - 程序员自己创建的函数

函数声明

函数声明语法

python
def func_name(arguments):
    # 函数体

    return
def func_name(arguments):
    # 函数体

    return

这里, def - 用来声明函数的关键字 func_name - 函数名 arguments - 函数入参 return(可选) - 函数的返回语句

函数调用

前面,我们通过 def 关键字完成函数的声明,接下来,通过使用函数名称+参数完成函数的调用。

python
# 声明test函数
def test():
    print("hello, w3query")

# 调用test函数,参数为空
test()


# 输出:
# hello, w3query
# 声明test函数
def test():
    print("hello, w3query")

# 调用test函数,参数为空
test()


# 输出:
# hello, w3query

这里,

  1. 当时函数被调用时,程序控制流跳转到函数定义处
  2. 函数内代码被执行
  3. 程序控制流跳转到函数调用代码的下一行语句

函数参数

Python函数,除了空参数外,也可以接收不定数量不定类型的参数。

python
def func_add(num1, num2):
    sum = num1 + num2
    print("num1+num2=", sum)

# 函数调用,带有参数名
func_add(num1=1, num2=2)
# 函数调用,省略参数名
func_add(3, 4)

# 输出:
# 3
# 7
def func_add(num1, num2):
    sum = num1 + num2
    print("num1+num2=", sum)

# 函数调用,带有参数名
func_add(num1=1, num2=2)
# 函数调用,省略参数名
func_add(3, 4)

# 输出:
# 3
# 7

这里,函数func_add声明了两个参数num1, num2;函数调用时,分别传入实际值。

函数传参

函数返回

函数可能有返回值,也可能没有。如果希望函数返回某个值,可以使用 return 语句。return语句代表着函数的结束,任何return语句后的代码都不会被执行。

python
def func_add(num1, num2):
    addvalue = num1 + num2
    return addvalue

sum = func_add(1, 2)
print("num1 + num2 = ", sum)


# 输出:
# num1 + num2 = 3
def func_add(num1, num2):
    addvalue = num1 + num2
    return addvalue

sum = func_add(1, 2)
print("num1 + num2 = ", sum)


# 输出:
# num1 + num2 = 3

函数返回

库函数

Python中,库函数是可以直接在程序中调用的内置函数。例如:

  • print() - 打印字符串
  • sqrt() - 返回数字的平方根
  • pow() - 返回数字的平方

这些库函数定义在不同的模块中,想要使用它们,需要在程序中引入对应模块。

python
# 引入math模块
import math

# 调用math模块中的sqrt函数
sqrt_value = math.sqrt(4)

print("4的平方根是:", sqrt_value)


# 输出:
# 4的平方根是:2.0
# 引入math模块
import math

# 调用math模块中的sqrt函数
sqrt_value = math.sqrt(4)

print("4的平方根是:", sqrt_value)


# 输出:
# 4的平方根是:2.0

这里,sqrt()方法定义在math模块中,因此需要引入math模块。

使用函数优点

  1. 代码复用

在实际编程中,相同的场景下,可以重复多次调用同一函数。

  1. 代码更具可读性

函数能够对处理逻辑进行封装,这样就可以把复杂的功能拆分为多个小的模块,每个小模块功能更加清晰和易于理解。