1.迭代器\生成器
# 斐波那契数列
def fib(n):
"""
生成斐波那契数列的前n个数字。
参数:
n -- 要生成的斐波那契数列的长度
返回:
生成器,产出斐波那契数列的前n个数字。
"""
a, b = 0, 1 # 初始化斐波那契数列的前两个数字
content = 0 # 初始化已生成的数字数量
while True:
if content >= n: # 当生成的数字数量达到指定长度时,退出循环
break
a, b = b, a + b # 计算下一个斐波那契数字
yield a # 产出当前数字并暂停函数执行
content += 1 # 已生成数字数量加一
# 创建一个斐波那契数列的生成器,旨在生成极大的斐波那契数列
gen = fib(100000000000000000000)
for i in gen:
if i > 1000: # 当生成的斐波那契数字大于1000时,退出循环
break
print(i) # 输出当前斐波那契数字
2.装饰器
# 导入time模块,用于计时功能
import time
# 定义登录验证装饰器
def logincheck(func):
# 定义内嵌函数,用于包裹被装饰的函数
def inner(*args, **kwargs):
# 打印登录验证信息
print("登录验证")
# 调用被装饰的函数
func(*args, **kwargs)
# 返回内嵌函数
return inner
# 定义计时装饰器
def timecheck(func):
# 定义内嵌函数,用于包裹被装饰的函数
def inner():
# 调用被装饰的函数
func()
# 打印当前时间
print("计时", time.time())
# 返回内嵌函数
return inner
# 使用登录验证装饰器
@logincheck
# 使用计时装饰器
# @timecheck
# 定义受装饰器影响的函数fun1
def fun1(x):
# 打印传入的参数x
print("fun1", x)
# 使用登录验证装饰器
@logincheck
# 定义受装饰器影响的函数fun2
def fun2(x, y, **kwargs):
# 打印传入的参数x和y
print("fun2", x, y)
# 打印传入的kwargs参数
print(kwargs)
# 调用fun1函数,传入参数'abc'
fun1('abc')
# 调用fun2函数,传入参数'hello', 'py'以及关键字参数a=1, b=2, c=3
fun2('hello', 'py', a=1, b=2, c=3)
标签:函数,迭代,python,生成器,斐波,print,那契,装饰,def
From: https://blog.csdn.net/Mooczx/article/details/142032909