首页 > 编程语言 >python装饰器\迭代器\生成器

python装饰器\迭代器\生成器

时间:2024-09-08 20:53:40浏览次数:3  
标签:函数 迭代 python 生成器 斐波 print 那契 装饰 def

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

相关文章

  • Python函数之lambda函数
    温馨提示:如果读者没有学过def定义函数,请先看这里定义形式<函数名>=lambda<参数列表>:<返回值>等同于:def<函数名>(<参数列表>): return<返回值>也可以定义为匿名函数(没有名字的函数):lambda<参数列表>:<返回值>可以确认lambda函数对象的类型与def定义的一样,都是fu......
  • 【开源推荐】MYScrcpy,不仅仅是python实现的Android投屏工具,更是开发测试新选择
    MYScrcpyV1.5.7python语言实现的一个Scrcpy客户端。包含完整的视频、音频、控制解析及展现,开发友好,引入即用!采用DearPyGui作为主要GUI。支持窗口位置记忆、右键手势控制、断线重连、虚拟摄像头投屏、中文输入,锁屏密码解锁等功能。高速模式使用pygame作为鼠标及键......
  • 【python爬虫】从腾讯API爬取美国疫情数据+制表
    最近(文章撰写时间为2020/6/118:40)疫情在中国情况好转,却在美国暴虐。本篇文章将爬取腾讯提供的美国疫情数据并制表。1.爬取数据调用API接口接口:https://api.inews.qq.com/newsqa/v1/automation/modules/list?modules=FAutoCountryMerge观察得到的数据:{ ..., "data":{ ......
  • Python和MATLAB(Java)及Arduino和Raspberry Pi(树莓派)点扩展函数导图
    ......
  • 【Python使用】嘿马python高级进阶全体系教程第9篇:HTTP 协议,1. HTTP 协议的介绍【附
    本教程的知识点为:操作系统1.常见的操作系统4.小结ls命令选项2.小结mkdir和rm命令选项1.mkdir命令选项压缩和解压缩命令1.压缩格式的介绍2.tar命令及选项的使用3.zip和unzip命令及选项的使用4.小结编辑器vim1.vim的介绍2.vim的工作模式3.vim的末行模......
  • Python毕业设计基于Django的川剧戏剧京剧戏曲科普平台 含选座功能
    文末获取资源,收藏关注不迷路文章目录一、项目介绍1管理员功能模块前台系统功能模块二、主要使用技术三、研究内容四、核心代码五、文章目录一、项目介绍随着我国经济的高速发展与人们生活水平的日益提高,人们对生活质量的追求也多种多样。尤其在人们生活节奏不断加......
  • 【Python】对象(包括类、函数)取名方法
    先上干货,通用的:字母:A-Za-z下划线:_数字:0-9(注意:数字不能在开头)理论上可以使用中文变量名,但强烈不建议使用。合法名字举例abcdef GoodCoder AD_fhrygfuigfrA_a_007 __NAME123 _P_T__123456 Cc_Dd _不合法名字举例666Code C++ 1+1=2 (5)4654ty54F 0.123 [email protected]......
  • Python函数之def定义函数
    链接想研究Python函数?看这里函数怎样取名?看这里有参数的函数还可以怎么传参?看这里一、无参数函数结构def<函数名>():#强制要求 <函数体>#可省略 return<返回值>#可省略程序举例用函数的Helloworld程序:#prints'HelloWorld\nDone'#Author:GoodCoder666d......
  • Python函数之*[参数名]和**[参数名]的用处
    一、*[参数名]调用合法调用普通调用*参数名一般写成*args,如:deffunc(*args): print(args)可以试着调用func:>>>func(1)(1,)>>>func()()>>>func(1,2,3)(1,2,3)>>>func(dict(),set(),str(),int())({},set(),'',0)所以,我们发现,这......
  • 网络设备开局配置生成器(第三次更新) QQ交流群:(4817315)
     网络设备开局配置生成器(SecureCRTvbs脚本)QQ交流群:(4817315)一、工具介绍本工具主要是针对简化网络工程师重复繁琐的工作而开发。工具只是将重复工作通过自己配置生成脚本代码来执行,工具的大致功能可以概括为以下几点:1.可以1分钟生成华为、华三、锐捷等交换机的开......