Python是一种高级编程语言,它具有简单易学、功能强大、可嵌入性强等特点,在大数据、人工智能等领域被广泛应用。Python中函数是编写可维护、可重用、可测试的代码的基本单元。下面我们将从语法、参数、作用域、递归和高级函数五个方面对Python函数进行总结,并附上代码示例。
一、语法
Python函数的基本结构如下:
def function_name(parameters):
"""docstring"""
statement(s)
return [expression]
其中,def
关键字表示函数定义,function_name
就是函数名;parameters
是函数参数(可选);函数体由statement(s)
构成;return
语句(可选)表示函数返回值。函数定义以冒号(:
)结尾,函数体需要缩进。
以下是一个简单的示例函数:
def greet(name):
""""This function greets to the person passed in as parameter"""
print("Hello, " + name + ". How are you?")
# 调用函数
greet('John')
输出结果为:
Hello, John. How are you?
二、参数
Python函数中,有四种类型的参数:
- 位置参数:按照顺序传递参数(最常见的方式)
- 默认参数:如果没有给出参数的值,则使用默认值
- 关键字参数:通过参数名传递参数
- 可变参数:传递不定数量的参数
以下是参数示例代码:
#位置参数
def student(name, age, address):
print("name:", name)
print("age:", age)
print("address:", address)
#调用函数
student("Tom", 20, "Beijing")
#默认参数
def greet(name, msg="Good morning!"):
"""
This function greets to the person with the provided message.
If message is not provided, it defaults to "Good morning!"
"""
print("Hello", name + ', ' + msg)
#调用函数
greet("Kate")
greet("Bruce", "How do you do?")
#关键字参数
def details(name, age, gender):
print("Name:", name)
print("Age:", age)
print("Gender:", gender)
#调用函数
details(name="Lucy", age=22, gender="female")
#可变参数
def sum(*args):
s = 0
for i in args:
s += i
return s
#调用函数
result = sum(1, 2, 3, 4, 5)
print("sum:", result)
三、作用域
Python的作用域分为局部作用域、全局作用域和内置作用域。当在函数中定义变量时,在函数体内部定义的变量属于局部变量,而不在函数内定义的变量属于全局变量。
以下是作用域示例代码:
#全局变量
count = 0
def add():
global count
count += 1
add()
print("count:", count)
#局部变量
def greet(name):
print("Hello, " + name)
greet("Mike")
#内置作用域
import builtins
print(dir(builtins))
四、递归
递归是一种函数调用自身的技术,它是解决许多编程问题的有效方法,如遍历一棵树和搜索算法等。Python完全支持递归,具有优雅简练、清晰明了等特点。
以下是递归示例代码:
def factorial(n):
"""This is a recursive function
to find the factorial of an integer"""
if n == 1:
return 1
else:
return n * factorial(n-1)
#调用函数
print("Factorial of 5 is:", factorial(5))
五、高级函数
在Python中,函数可以作为参数传递。这种函数称为高级函数(higher-order function)。Python还提供了一些内置高级函数,如map()、filter()和reduce()等。
以下是高级函数示例代码:
#map()函数
def square(x):
return x**2
numbers = [1, 2, 3, 4, 5]
result = map(square, numbers)
print(list(result))
#filter()函数
def is_even(n):
return n % 2 == 0
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = filter(is_even, numbers)
print(list(result))
#reduce()函数
from functools import reduce
def multiply(x, y):
return x * y
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = reduce(multiply, numbers)
print(result)
结语
Python函数是编写可维护、可重用、可测试的代码的基本单元。在本文中,我们对Python函数的语法、参数、作用域、递归和高级函数进行了总结,并附带了详细代码示例。通过不断的学习和实践,我们相信你将成为一个优秀的Python开发工程师。
原创文章,作者:YGGXP,如若转载,请注明出处:https://www.506064.com/n/373879.html