python函数大全

  • Post category:Python

下面就给您详细讲解Python函数大全的完整攻略。

1. 函数概述及定义

函数是一段可重复使用的代码块,用于封装特定的任务或计算。通过函数将代码分解成小的、重复的结构,使代码更简洁、易于理解和维护。

Python函数的定义采用def关键字,语法格式如下:

def 函数名(参数列表):
    函数体
  • 函数名:标识符,用于调用函数。
  • 参数列表:包含0个或多个参数,多个参数之间用逗号隔开。
  • 函数体:包含在函数内的代码。

下面是一个简单的示例:

def sum(a, b):        # 定义一个函数,用于对两个数进行求和操作
    '''
    函数说明:对两个数进行求和
    参数说明:
    a:整数类型
    b:整数类型
    返回值说明:
    返回a和b的和
    '''
    c = a + b
    return c        # 返回计算结果

在定义函数时,可以为函数编写文档字符串,以便其他人在使用函数时可以了解函数的作用、参数、返回值等信息。文档字符串用三引号(”’或”””)包含,通常写在函数开头。

2. 函数参数

Python函数参数可以分为以下几类:

  • 位置参数(positional arguments)
  • 默认参数(default arguments)
  • 可变参数(variable-length arguments)
  • 关键字参数(keyword arguments)
  • 命名关键字参数(named keyword arguments)

2.1 位置参数

位置参数就是按照位置,按顺序传入函数的参数。下面是一个示例:

def add(a, b):
    return a + b

result = add(1, 2)
print(result)

在调用add函数时,按照位置依次传入a和b的值,输出3。

2.2 默认参数

默认参数指的是在函数定义时给参数一个默认值,如果在调用函数时不传入该参数,则使用默认值。默认参数可以用来减少函数调用的复杂度。下面是一个示例:

def print_info(name, age=20, gender='男'):
    print(f'姓名:{name},年龄:{age},性别:{gender}')

print_info('小明', 18, '男')
print_info('小红', 20, '女')

在调用print_info函数时,age和gender都有默认值。第一次调用函数时,age和gender被传入了具体的值;第二次调用时只传入了name参数,而age和gender使用了默认值。

2.3 可变参数

可变参数指的是传入的参数个数是可变的,函数在接受可变参数时,会将它们放入一个元组中。在定义函数时,用一个*号来接受可变参数。下面是一个示例:

def print_numbers(*numbers):
    for num in numbers:
        print(num)

print_numbers(1, 2, 3, 4, 5)

在调用print_numbers函数时,传入了5个参数,然后函数会将这5个参数放入一个元组中,然后遍历元组并打印每个元素。

2.4 关键字参数

关键字参数指的是在调用函数时,通过参数名来确定参数的值。在定义函数时,用两个*号来接受关键字参数。下面是一个示例:

def print_info(name, age, gender):
    print(f'姓名:{name},年龄:{age},性别:{gender}')

print_info(age=18, name='小明', gender='男')

在调用print_info函数时,采用关键字参数来给参数赋值。具体来说就是采用参数名=值这种形式。

2.5 命名关键字参数

命名关键字参数指的是在调用函数时,需要确定参数的参数名,否则会报错。它与关键字参数的不同之处在于,命名关键字参数可以限制传入的参数列表。下面是一个示例:

def print_info(name, age, *, gender, job):
    print(f'姓名:{name},年龄:{age},性别:{gender},职业:{job}')

print_info('小明', 18, gender='男', job='学生')

在定义print_info函数时,其参数列表中的*号表示*之前的是位置参数,*之后的是命名关键字参数。在调用print_info函数时,必须通过参数名来确定gender和job的值。

3. 匿名函数

匿名函数又叫 lambda 函数,是一种可以在代码中随处使用的小型匿名函数。通常用于较简单的函数或需在执行期间被多次使用的函数。下面是一个示例:

x = lambda a, b, c: a + b + c
print(x(1, 2, 3))

以上代码中,lambda函数包含三个变量a、b、c,它们的和作为函数的返回值。

4. 递归函数

递归函数是一种特殊的函数,它可以在函数内部调用自身。递归函数常常用来解决数学问题、编程问题等递归类问题。下面是一个示例:

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

num = 5
print(f"{num}的阶乘是{factorial(num)}")

以上代码中,factorial函数是一个递归函数,用于计算一个整数的阶乘。在调用函数时,传入参数5,返回5的阶乘120。

5. 闭包

闭包就是函数(外层函数)内部包含另一个函数(内层函数),并返回内部函数的情况。这个内部函数可以访问包含它的外层函数的局部变量,向外部提供了一个访问外层函数的接口。下面是一个示例:

def parent():
    age = 30
    def child():
        print(age)
    return child

foo = parent()
foo()

以上代码中, parent函数嵌套了child函数,child函数被返回给foo变量。调用foo函数时,会输出30。

6. 高阶函数

高阶函数是指将一个或多个函数作为参数或返回值的函数。下面是一个示例:

def square(x):
    return x * x

def sum_square(f, a, b):
    return sum(f(x) for x in range(a, b+1))

print(sum_square(square, 1, 5))    # 输出55

以上代码中,square函数用于计算一个数的平方。sum_square函数则是一个高阶函数,它将一个函数 f、范围 ab 之间的整数作为参数,返回 f 函数在这个范围内的和。

总结

以上就是 Python函数大全攻略的详细讲解。其中涉及到函数概述及定义、函数参数、匿名函数、递归函数、闭包和高阶函数。其中每一个部分都包含了相关示例,有助于更好地理解函数的概念和用法。