Python基础算法训练——函数与递归(46~50)
发布人:shili8
发布时间:2025-03-07 06:07
阅读次数:0
**Python 基础算法训练 —— 函数与递归 (46-50)**在 Python 中,函数是编程的基本组成单位。函数可以封装一段代码,使其可以重复使用,并且可以减少代码冗余性。递归是一种特殊的函数调用方式,它通过自身来解决问题。
本文将介绍 Python 基础算法训练中的函数与递归相关内容,包括函数定义、函数参数传递、函数返回值、递归函数和递归函数的应用。
###46. 函数定义函数是编程中最基本的单位。函数可以封装一段代码,使其可以重复使用,并且可以减少代码冗余性。
def say_hello(name): """ 输出一个问候语句。 Args: name (str): 被问候的人的名字。 Returns: None """ print(f"Hello, {name}!")
在上面的例子中,我们定义了一个函数 `say_hello`,它接受一个参数 `name`,并输出一个问候语句。
###47. 函数参数传递函数参数传递是指将数据从外部传入函数内部的过程。Python 支持多种类型的参数传递方式,包括位置参数、关键字参数和默认参数。
def say_hello(name, age=0): """ 输出一个问候语句。 Args: name (str): 被问候的人的名字。 age (int, optional): 被问候的人的年龄。 Defaults to0. Returns: None """ print(f"Hello, {name}! You are {age} years old.")
在上面的例子中,我们定义了一个函数 `say_hello`,它接受两个参数 `name` 和 `age`。如果不传递 `age` 参数,则默认值为0。
###48. 函数返回值函数可以返回任何类型的数据,包括数字、字符串和列表等。
def add(a, b): """ 返回两个数的和。 Args: a (int): 第一个数。 b (int): 第二个数。 Returns: int:两个数的和。 """ return a + bprint(add(2,3)) # 输出:5
在上面的例子中,我们定义了一个函数 `add`,它返回两个数的和。
###49. 递归函数递归是一种特殊的函数调用方式,它通过自身来解决问题。递归函数通常用于处理树形结构或其他递归关系的问题。
def factorial(n): """ 计算 n 的阶乘。 Args: n (int): 阶乘数。 Returns: int: n 的阶乘。 """ if n ==0: return1 else: return n * factorial(n-1) print(factorial(5)) # 输出:120
在上面的例子中,我们定义了一个函数 `factorial`,它计算 n 的阶乘。这个函数通过自身来解决问题。
###50. 递归函数的应用递归函数有很多应用场景,包括树形结构、图形算法和其他递归关系的问题。
class Node: def __init__(self, value): self.value = value self.children = [] def traverse(node): """ 遍历树。 Args: node (Node): 当前节点。 Returns: None """ print(node.value) for child in node.children: traverse(child) root = Node("A") root.children.append(Node("B")) root.children.append(Node("C")) traverse(root) # 输出: A B C
在上面的例子中,我们定义了一个类 `Node`,它代表树中的一个节点。我们还定义了一个函数 `traverse`,它通过自身来遍历树。
综上所述,函数和递归是 Python 基础算法训练中的重要内容。函数可以封装一段代码,使其可以重复使用,并且可以减少代码冗余性。递归是一种特殊的函数调用方式,它通过自身来解决问题。递归函数有很多应用场景,包括树形结构、图形算法和其他递归关系的问题。