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 中内置了许多高阶函数,包括 map
、filter
和 reduce
等。
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 函数功能对于开发高质量的代码非常重要。