Python 函数

函数是执行特定任务的代码块。

假设我们需要创建一个程序来绘制一个圆并为其着色。我们可以创建两个函数来解决这个问题:

  1. 创建圆的函数
  2. 为形状着色的函数

将复杂问题分解成更小的部分,使我们的程序易于理解和重用。


创建函数

让我们创建第一个函数。

def greet():
    print('Hello World!')

以下是程序的各个部分:

Create a Python Function
创建 Python 函数

在这里,我们创建了一个名为 greet() 的简单函数,它打印 Hello World!

注意:编写函数时,请注意缩进,即代码行开头的空格。

在上面的代码中,print() 语句被缩进以表明它是函数体的一部分,从而将函数的定义与其主体区分开来。


调用函数

在上面的示例中,我们声明了一个名为 greet() 的函数。

def greet():
    print('Hello World!')

如果我们运行上面的代码,将不会得到输出。

这是因为创建函数并不意味着我们正在执行其中的代码。这意味着代码在那里供我们使用,如果我们愿意的话。

要使用此函数,我们需要调用该函数。

函数调用

greet()

示例:Python 函数调用

def greet():
    print('Hello World!')

# call the function
greet()

print('Outside function')

输出

Hello World!
Outside function

在上面的示例中,我们创建了一个名为 greet() 的函数。程序控制流如下:

Python Function Working
Python 函数的工作原理

这里,

  1. 当调用函数 greet() 时,程序的控制权转移到函数定义。
  2. 函数内的所有代码都将被执行。
  3. 程序控制权跳到函数调用之后的下一条语句。

Python函数参数

参数是提供给函数的输入。

def greet(name):
    print("Hello", name)

# pass argument
greet("John")

示例输出 1

Hello John

在这里,我们将“John”作为参数传递给 greet() 函数。

我们可以在每次调用中传递不同的参数,使函数可重用且动态。

让我们用不同的参数调用该函数。

greet("David")

示例输出 2

Hello David

示例:两个数字相加的函数

# function with two arguments
def add_numbers(num1, num2):
    sum = num1 + num2
    print("Sum: ", sum)

# function call with two values
add_numbers(5, 4)

输出

Sum: 9

在上面的示例中,我们创建了一个名为 add_numbers() 的函数,其参数为:num1num2

Python Function Argument
带参数的 Python 函数

形参和实参

形参

形参是函数定义中括号内列出的变量。它们就像函数被调用时可以接受数据的占位符。

将形参视为蓝图,它概述了函数期望接收何种信息。

def print_age(age):  # age is a parameter
    print(age)

在此示例中,print_age() 函数将 age 作为其输入。但是,在此阶段,实际值尚未指定。

age 形参只是一个占位符,等待在函数调用时提供特定值。

实参

实参是我们在调用函数时传递给函数的实际值。

当函数执行时,实参会替换形参。

print_age(25)  # 25 is an argument

在这里,在函数调用期间,实参 25 被传递给函数。


return 语句

我们使用 return 语句从函数返回一个值。

# function definition
def find_square(num):
    result = num * num
return result
# function call square = find_square(3) print('Square:', square)

输出

Square: 9

在上面的示例中,我们创建了一个名为 find_square() 的函数。该函数接受一个数字并返回该数字的平方。

How function works in Python?
Python 中函数的工作原理

注意:return 语句也表示函数已结束。return 之后的任何代码都不会执行。


pass 语句

pass 语句作为未来代码的占位符,防止空代码块引发错误。

它通常用于代码已计划但尚未编写的地方。

def future_function():
    pass

# this will execute without any action or error
future_function()  

注意:要了解更多信息,请访问Python pass 语句


Python 库函数

Python 提供了一些可以直接在程序中使用的内置函数。

我们不需要创建函数,只需要调用它们。

一些 Python 库函数是:

  1. print() - 打印引号内的字符串
  2. sqrt() - 返回数字的平方根
  3. pow() - 返回数字的幂

这些库函数在模块中定义。要使用它们,我们必须在程序中包含该模块。

例如,sqrt() 定义在 math 模块中。

注意:要了解有关库函数的更多信息,请访问Python 库函数


示例:Python 库函数

import math

# sqrt computes the square root
square_root = math.sqrt(4)

print("Square Root of 4 is",square_root)

# pow() comptes the power
power = pow(2, 3)

print("2 to the power 3 is",power)

输出

Square Root of 4 is 2.0
2 to the power 3 is 8

在这里,我们导入了一个 math 模块来使用库函数 sqrt()pow()


更多关于 Python 函数

用户定义函数与标准库函数

在 Python 中,函数分为两类:用户定义函数和标准库函数。这两者在几个方面有所不同:

用户定义函数

这些是我们自己创建的函数。它们就像我们的定制工具,专为我们心中的特定任务而设计。

它们不属于 Python 的标准工具箱,这意味着我们可以自由地根据自己的需求进行定制,为我们的代码添加个人风格。

标准库函数

将它们视为 Python 的预打包礼物。它们随 Python 内置,开箱即用。

这些函数涵盖了广泛的常见任务,例如数学、文件操作、使用字符串等。

它们经过 Python 社区的反复试验和测试,确保了效率和可靠性。

函数中的默认参数

Python 允许函数具有默认参数值。当函数调用期间没有向这些参数传递显式值时,将使用默认参数。

让我们看一个例子。

def greet(name, message="Hello"):
    print(message, name)

# calling function with both arguments
greet("Alice", "Good Morning")

# calling function with only one argument
greet("Bob")

输出

Good Morning Alice
Hello Bob

在这里,message 的默认值为 Hello。当 greet() 仅带一个参数调用时,message 使用其默认值。

注意:要了解有关函数中默认参数的更多信息,请访问Python 函数参数

在函数中使用 *args**kwargs

我们可以使用特殊符号 *args**kwargs 处理任意数量的参数。

函数中的 *args

使用 *args 允许函数接受任意数量的位置参数。

# function to sum any number of arguments
def add_all(*numbers):
    return sum(numbers)

# pass any number of arguments
print(add_all(1, 2, 3, 4))   

输出

10

函数中的 **kwargs

使用 **kwargs 允许函数接受任意数量的关键字参数。

# function to print keyword arguments
def greet(**words):
    for key, value in words.items():
        print(f"{key}: {value}")

# pass any number of keyword arguments
greet(name="John", greeting="Hello")

输出

name: John
greeting: Hello

要了解更多信息,请访问Python *args 和 **kwargs


另请阅读

在结束之前,让我们测试一下您对 Python 函数的知识!您能解决以下挑战吗?

挑战

编写一个函数来检查给定数字是否为素数。

  • 素数只能被 1 和它本身整除。例如,13
  • 如果数字是素数,则返回 True,否则返回 False

视频:Python 函数简介

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战