欢迎访问宙启技术站
智能推送

Python函数的基本语法和调用方法

发布时间:2023-05-20 10:58:37

Python是一种简单易学但功能强大的编程语言,自带了许多标准函数库,被广泛应用于数据科学、机器学习、Web开发等方面。函数是Python中的一种基本语言构造,可以封装一段代码,便于重复使用、提高代码的可读性和灵活性。本篇文章将介绍Python函数的基本语法和调用方法。

## 定义函数

函数的定义以def关键字开头,后跟函数名和一对括号,括号中可以包含参数列表,函数体用冒号(:)进行分隔。函数定义的语法格式如下:

def function_name(parameters):
    """docstring"""
    statement(s)

其中,parameters是函数的形式参数,可选项,用来接收传入函数的参数。docstring用来描述函数的作用和使用方法,在函数文档中进行解释。statement(s)是一组Python语句,可选项,用来实现具体的函数功能。

例如,以下是一个计算平方的函数:

def square(x):
    """
    计算平方
    :param x: 数值类型的参数
    :return: x的平方
    """
    return x * x

函数名称square后跟一对括号,括号中的x是函数的 参数,函数体包含一个返回值语句return,其功能是返回参数x的平方。函数定义完成后,可以通过help函数来查看其文档字符串:

>>> help(square)
Help on function square in module __main__:

square(x)
    计算平方
    :param x: 数值类型的参数
    :return: x的平方

## 调用函数

函数定义好了以后,就可以在其他地方调用它,传递参数,并使用其返回值。调用一个函数时,需要使用函数名称,后跟一对括号,括号中是一个或多个实际的参数,用逗号(,)进行分隔。例如:

>>> square(2)
4

在这个示例中,我们调用square函数,并传递2作为实际参数。函数将计算出2的平方,返回该值4

## 不带参数的函数

函数可以不带任何参数,这种函数通常用于执行一些预定的操作,或者返回一些固定的结果。例如,以下是一个返回当前日期的函数:

import datetime

def today():
    """
    返回今天的日期
    :return: 今天的日期,格式为YYYY-MM-DD
    """
    return datetime.date.today().strftime("%Y-%m-%d")

该函数不带任何参数,使用Python内置的datetime模块获取当前日期,再格式化后返回。可以通过以下方式调用该函数:

>>> today()
'2021-06-22'

## 可变参数的函数

当需要处理不确定个数的参数时,可以使用可变参数。Python提供了两种类型的可变参数:*args**kwargs

### *args

使用*args可以传递不定数量的位置参数,形式为*args。当函数被调用时,所有位置参数都被收集到一个元组中,然后传递给函数。例如:

def multiply(*numbers):
    """
    计算不定个数的数的积
    :param numbers: 一个或多个数值类型的参数
    :return: 参数的积
    """
    result = 1
    for n in numbers:
        result *= n
    return result

该函数使用*numbers收集任意数量的位置参数,然后将它们相乘,最后返回结果。可以通过以下方式调用该函数:

>>> multiply(1, 2, 3, 4, 5)
120

### **kwargs

除了*args,Python还提供了**kwargs,用来传递不定数量的关键字参数。

关键字参数指的是传递给函数的形式为key=value的参数,可以使用**kwargs将它们收集到一个字典中。

def print_kwargs(**kwargs):
    """
    输出关键字参数
    :param kwargs: 不定数量的关键字参数
    """
    for key, value in kwargs.items():
        print(f"{key}={value}")

该函数使用**kwargs收集任意数量的关键字参数,然后遍历字典并输出每个参数的名称及其值。可以通过以下方式调用该函数:

>>> print_kwargs(name="Alice", age=30, occupation="Engineer")
name=Alice
age=30
occupation=Engineer

## 匿名函数

Python支持匿名函数,也称为lambda函数。其语法格式为:

lambda arguments: expression

其中,arguments是函数的参数,expression是一个表达式,返回值为函数的结果。例如:

>>> square = lambda x: x ** 2
>>> square(2)
4

通过lambda定义了一个简单的平方函数,与 节中的square函数等价。

## 内置函数

Python还提供了许多内置函数,它们不需要先导入模块就可以直接使用。以下是一些常用的内置函数:

| 函数 | 描述 |

| :--------------- | :----------------------------------------------------------- |

| abs(x) | 返回x的绝对值 |

| max([args]) | 返回最大值(参数为列表、元组或可迭代对象) |

| min([args]) | 返回最小值(参数为列表、元组或可迭代对象) |

| len(x) | 返回对象的长度(参数为序列、映射或集合) |

| sum(iterable) | 返回序列、集合或可迭代对象中所有元素的和 |

| sorted(iterable) | 对序列、集合或可迭代对象进行排序,并返回排序后的列表 |

| any(iterable) | 如果可迭代对象中至少有一个元素为True,则返回True |

| all(iterable) | 如果可迭代对象中全部元素都为True,则返回True |

| map(func, iterable) | 对可迭代对象中的每个元素都执行func函数,并返回一个迭代器 |

| filter(func, iterable) | 对可迭代对象中的每个元素进行过滤,并返回符合条件的元素所组成的迭代器 |

例如,以下是一个使用map函数对序列中的每个元素求平方的示例:

>>> a = [1, 2, 3, 4, 5]
>>> list(map(lambda x: x ** 2, a))
[1, 4, 9, 16, 25]

## 总结

本文介绍了Python函数的基本语法和调用方法,并简要介绍了不带参数、可变参数、内置函数和匿名函数等方面的知识点。函数是Python编程中的一个重要部分,能够提高代码的可读性和灵活性,是Python编程效率的关键所在。