Python 3 – 函数

Python 3 – 函数

Python 是面向对象编程语言,所有功能都是通过函数和类实现。函数是任何编程语言中最基本的概念之一。

Python 提供了强大的函数功能,包括定义参数、默认参数、不定长参数、匿名函数和高阶函数等等。

函数的定义和调用

在 Python 中,使用 def 关键字来定义函数。下面是一个简单的函数定义并调用的示例:

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

greet("World") # Hello, World!

在 Python 中,函数调用直接使用函数名并传递所需的参数。注意,函数的参数由一对圆括号括起来,即使没有参数也必须使用圆括号。

参数的传递方式

Python 中函数的参数可以通过不同的方式传递:位置参数、默认参数、关键字参数和不定长参数。

位置参数

位置参数是最常用的参数传递方式,顺序很重要,按照定义顺序一一传递参数。下面是一个位置参数的示例:

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

print(add(1, 2)) # 3

默认参数

默认参数可以指定参数的默认值,如果没有传递参数则使用默认值。下面是一个默认参数的示例:

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

print(add(1)) # 3

关键字参数

关键字参数可以使用参数名来传递参数,这种方式不依赖于参数的位置。下面是一个关键字参数的示例:

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

print(add(b=2, a=1)) # 3

不定长参数

不定长参数可以接受任意个参数,可以是位置参数、默认参数和关键字参数。下面是一个不定长参数的示例:

def add(*args):
    sum = 0
    for i in args:
        sum += i
    return sum

print(add(1, 2, 3, 4, 5)) # 15

匿名函数

匿名函数也叫 lambda 函数,是一个没有名字的函数。它可以接收任意多个参数,并且返回一个结果。下面是一个匿名函数的示例:

square = lambda x: x * x
print(square(2)) # 4

在上面的示例中,我们定义了一个 lambda 函数,它接收一个参数 x 并返回 x * x 的结果。

高阶函数

高阶函数是一个函数接收另一个函数作为参数或者返回一个函数。Python 中内置了许多高阶函数,包括 mapfilterreduce 等。

map 函数

map 函数可以对序列中的每个元素应用一个函数,然后返回一个新序列。下面是一个 map 函数的示例:

def square(x):
    return x * x

squares = map(square, [1, 2, 3, 4, 5])
print(list(squares)) # [1, 4, 9, 16, 25]

在上面的示例中,我们使用 map 函数对 [1, 2, 3, 4, 5] 序列中的每个元素应用 square 函数,并返回一个新序列 squares

filter 函数

filter 函数可以对序列中的元素应用一个函数,用于过滤出符合条件的元素,并返回一个新序列。下面是一个 filter 函数的示例:

def is_even(x):
    return x % 2 == 0

evens = filter(is_even, [1, 2, 3, 4, 5])
print(list(evens)) # [2, 4]

在上面的示例中,我们使用 filter 函数对 [1, 2, 3, 4, 5] 序列中的每个元素应用 is_even 函数,用于过滤出偶数元素,并返回一个新序列 evens

reduce 函数

reduce 函数可以对一个序列中的元素依次应用一个函数,用于累积计算,并返回一个结果。下面是一个 reduce 函数的示例:

from functools import reduce

def sum(x, y):
    return x + y

total = reduce(sum, [1, 2, 3, 4, 5])
print(total) # 15

在上面的示例中,我们使用 reduce 函数对 [1, 2, 3, 4, 5] 序列中的每个元素应用 sum 函数,用于累积计算它们的和,并返回一个结果 total

结论

Python 3 中的函数是任何编程语言中最基本的概念之一。Python 提供了强大的函数功能,包括定义参数、默认参数、不定长参数、匿名函数和高阶函数等等。熟练掌握 Python 函数功能对于开发高质量的代码非常重要。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程