python函数用法(二)

简介: python函数用法(二)

python函数用法(二)

1. 递归函数

递归函数是调用自身的函数。递归在解决某些问题时非常有用,如计算阶乘、遍历树形结构等。

python复制代码

 

def factorial(n):

 

"""This function calculates the factorial of a number.""" 

 

if n == 0:

 

return 1 

 

else:

 

return n * factorial(n - 1)

 

 

 

print(factorial(5)) # 输出:120

2. 生成器函数

生成器函数是一种特殊的函数,它使用yield关键字而不是return来返回值。生成器函数返回一个迭代器,可以在需要时逐个产生值,而不是一次性计算所有值并返回它们。这对于处理大量数据或无限序列非常有用。

python复制代码

 

def square_numbers(n):

 

"""This generator function yields squares of numbers up to n.""" 

 

for i in range(n):

 

yield i ** 2 

 

 

 

# 创建一个生成器对象

 

squares = square_numbers(5)

 

 

 

# 遍历生成器对象,打印每个值

 

for square in squares:

 

print(square)

 

 

3. 装饰器函数

装饰器是Python中一个高级功能,它允许你修改或增强函数的行为,而无需修改函数本身的代码。装饰器本质上是一个接受函数作为参数的可调用对象(通常是另一个函数),并返回一个新函数。

下面是一个简单的装饰器示例,它用于记录函数执行的时间:

python复制代码

 

import time

 

 

 

def timing_decorator(func):

 

"""This decorator measures the execution time of a function.""" 

 

def wrapper(*args, **kwargs):

 

start_time = time.time()

 

result = func(*args, **kwargs)

 

end_time = time.time()

 

print(f"Function {func.__name__} took {end_time - start_time:.6f} seconds to execute.")

 

return result

 

return wrapper

 

 

 

@timing_decorator

 

def slow_function():

 

"""A slow function that we want to measure the execution time of.""" 

 

time.sleep(2) # Simulate a slow operation

 

return "Done" 

 

 

 

# 调用被装饰的函数

 

slow_function()

在上面的例子中,@timing_decorator是装饰器的语法糖,它等价于slow_function = timing_decorator(slow_function)。当调用slow_function时,实际上调用的是wrapper函数,它在执行原函数前后添加了时间测量代码。

 

目录
相关文章
|
3天前
|
Python
python函数进阶
python函数进阶
|
3天前
|
安全 Python
Python量化炒股的获取数据函数—get_industry()
Python量化炒股的获取数据函数—get_industry()
10 3
|
3天前
|
Python
Python sorted() 函数和sort()函数对比分析
Python sorted() 函数和sort()函数对比分析
|
3天前
|
Python
Python量化炒股的获取数据函数—get_security_info()
Python量化炒股的获取数据函数—get_security_info()
10 1
|
5天前
|
Python
Python中正则表达式(re模块)用法详解
Python中正则表达式(re模块)用法详解
13 2
|
6天前
|
数据库 开发者 Python
实战指南:用Python协程与异步函数优化高性能Web应用
在快速发展的Web开发领域,高性能与高效响应是衡量应用质量的重要标准。随着Python在Web开发中的广泛应用,如何利用Python的协程(Coroutine)与异步函数(Async Functions)特性来优化Web应用的性能,成为了许多开发者关注的焦点。本文将从实战角度出发,通过具体案例展示如何运用这些技术来提升Web应用的响应速度和吞吐量。
12 1
|
6天前
|
调度 Python
揭秘Python并发编程核心:深入理解协程与异步函数的工作原理
在Python异步编程领域,协程与异步函数成为处理并发任务的关键工具。协程(微线程)比操作系统线程更轻量级,通过`async def`定义并在遇到`await`表达式时暂停执行。异步函数利用`await`实现任务间的切换。事件循环作为异步编程的核心,负责调度任务;`asyncio`库提供了事件循环的管理。Future对象则优雅地处理异步结果。掌握这些概念,可使代码更高效、简洁且易于维护。
10 1
|
10天前
|
Python
[oeasy]python035_根据序号得到字符_chr函数_字符_character_
本文介绍了Python中的`ord()`和`chr()`函数。`ord()`函数通过字符找到对应的序号,而`chr()`函数则根据序号找到对应的字符。两者互为逆运算,可以相互转换。文章还探讨了单双引号在字符串中的作用,并解释了中文字符和emoji也有对应的序号。最后总结了`ord()`和`chr()`函数的特点,并提供了学习资源链接。
16 4
|
14天前
|
Java Python
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
【9月更文挑战第18天】在 Python 中,虽无明确的 `interface` 关键字,但可通过约定实现类似功能。接口主要规定了需实现的方法,不提供具体实现。抽象基类(ABC)则通过 `@abstractmethod` 装饰器定义抽象方法,子类必须实现这些方法。使用抽象基类可使继承结构更清晰、规范,并确保子类遵循指定的方法实现。然而,其使用应根据实际需求决定,避免过度设计导致代码复杂。
|
3天前
|
Python
Python量化炒股的获取数据函数— get_billboard_list()
Python量化炒股的获取数据函数— get_billboard_list()
下一篇
无影云桌面