首页 > 编程语言 >python Ai 应用开发基础训练,字符串,字典,文件,函数,装饰品,生成器(下)

python Ai 应用开发基础训练,字符串,字典,文件,函数,装饰品,生成器(下)

时间:2024-03-13 14:58:59浏览次数:30  
标签:fib python max 生成器 斐波 Ai done 那契

生成器的另一个示例,这个生成器功能是从大小生,生成斐波那契数列

def fib(max): # 定义一个函数fib,参数为max
    a, b = 0, 1 # 初始化两个变量a和b,分别赋值为0和1
    n = 0 # 初始化计数变量n为0
    while b < max: # 当b小于max时继续循环
        print(b) # 打印当前的斐波那契数列值b
        a, b = b, a + b # 更新a和b的值,使其依次向前推算斐波那契数列
        n += 1 # 计数变量n加1
    print('done') # 循环结束后打印'done'
    
fib(100) # 调用fib函数,设定max为100

  现在只需要在上面代码第五行,,print(b)   这一句改为 yield b  可以变为生成器生成 ,改变性存 # 使用yield关键字返回当前的斐波那契数列值,改成生成器后 在打印这个fib(100)时,只会返回结果,如果需要调用每一句值,就需要用到__next__()

def fib(max): # 定义一个生成器函数fib,参数为max
    a, b = 0, 1 # 初始化两个变量a和b,分别赋值为0和1
    while b < max: # 当b小于max时继续循环
        yield b # 使用yield关键字返回当前的斐波那契数列值b
        a, b = b, a + b # 更新a和b的值,使其依次向前推算斐波那契数列
    
    return 'done' # 循环结束后返回'done'

# 调用生成器函数并遍历输出结果
for num in fib(100): # 调用fib函数并传入max为100
    print(num) # 打印每个斐波那契数列值
生成器完整示例
##调用生成器的元素
f = fib(100) print(f._next__())
##利用循环一次调取生成器的结果可以用for
for i in f:
  print(i)

但是利用for 打印不会打印循环后的语句,print(done)估记不在线程内,如果循环10次,调第十一次的时候内部有抛异常,只有抓住异常才会显示如果要在生成器中打印出 "done" 语句,可以在生成器结束后迭代生成器对象。在迭代过程中,当生成器抛出 StopIteration 异常时,我们可以捕获该异常并在异常处理中添加打印 "done" 的操作。
def fib(max): # 定义一个生成器函数fib,参数为max
    a, b = 0, 1 # 初始化两个变量a和b,分别赋值为0和1
    while b < max: # 当b小于max时继续循环
        yield b # 使用yield关键字返回当前的斐波那契数列值b
        a, b = b, a + b # 更新a和b的值,使其依次向前推算斐波那契数列
    
    raise StopIteration('done') # 抛出StopIteration异常,并附带提示信息 'done'

# 调用生成器函数并遍历输出结果
gen = fib(100) # 调用fib函数并传入max为100
try:
    while True:
        num = next(gen) # 获取生成器的下一个值
        print(num) # 打印每个斐波那契数列值
except StopIteration as e:
    print(e) # 打印异常中的提示信息 'done'

  

 

标签:fib,python,max,生成器,斐波,Ai,done,那契
From: https://www.cnblogs.com/fgxwan/p/18070623

相关文章

  • 如何系统的学习Python——异常处理
    异常处理是在程序执行期间检测到的错误或异常情况的处理过程。在Python中,异常由try,except,else和finally语句来处理。以下是一个简单的介绍:1.try和except块:try:#可能会引发异常的代码块result=10/0#除零异常exceptZeroDivisionError:......
  • 7-hard_constraints
    Initiallywe’lllookatthemostcommonhardconstraint—collisionsandcontactbetweenobjects.Alltheengineswe’rebuildinginthisbooktreathardconstraintsdifferentfromforcegenerators.Attheendofthebook,we’lllookbrieflyatalternativeapp......
  • AIOps 智能运维:有没有比专家经验更优雅的错/慢调用分析工具?
    作者:图杨工程师小A刚刚接手他们公司最核心的电商系统的运维工作,小A发现,在生产环境中,系统明明运行得非常稳定,但是总会出现一些“诡异”的情况。比如:偶尔会一些错误调用,但是,还没来得及修,系统又莫名奇妙地恢复正常。应用的平均响应时间很短,但是总会有一些响应时间非常长的离......
  • springboot/java/php/node/python企业微培训小程序【计算机毕设】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着科技的迅猛发展,移动互联网已成为企业培训的新阵地。传统的面对面培训模式因其时间、地点的限制性逐渐显得不够灵活,而小程序作为一种轻量级的应用,能够......
  • 斯图特STUDER手柄PCU TerminaI维修指导分析
    一、斯图特STUDER手柄PCUTerminaI常见故障及原因分析显示屏故障:显示屏不亮、显示内容异常或闪烁。可能原因包括电源线松动、显示屏损坏或内部连接不良。按键失灵:按键无反应或反应不灵敏。可能是由于按键面板损坏、按键触点脏污或老化所致。通信故障:斯图特STUDER手柄PCUTermi......
  • 2024-推荐5个我常用的AI工具
    AI工具可以在多种方面帮助我们学习知识、提高效率和思维,比如个性化学习、解决专业难题、语言学习、研究辅助、评分和反馈、职业指导、语言翻译等等。网上一直说,AI在改变众多行业,现在我推荐我常用、乱逛的几个AI工具网站。开通AI工具渠道(客服免费帮忙开通,只需3步!):注册地址1.Ch......
  • 【论文阅读】THEMIS: Fair and Efficient GPU Cluster Scheduling
    11.THEMIS:FairandEfficientGPUClusterScheduling出处:2020USENIXThemis:公平高效的GPU集群调度|USENIX主要工作:使用拍卖机制,针对长时间运行、位置敏感的ML应用程序。任务以短期的效率公平来赢取投标但确保长期是完成时间公平性。对每个ML应用程序......
  • 4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕
    4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕学Python编程》)——跟老吕学Python编程一、下载MAC版Python1.Python官网2.MAC版Python下载网址二、在MAC安装Python1.在MAC安装Python2.阅读Python重要信息3.同意Python许可4.确认同意......
  • 北大最新综述精读:RAG在AIGC中的前世今生,覆盖300篇论文!
    ©作者|Haoyang来源|神州问学如果你对这篇文章感兴趣,而且你想要了解更多关于AI领域的实战技巧,可以关注「神州问学」公众号。在这里,你可以看到最新最热的AIGC领域的干货文章和前沿资讯。引言:人工智能生成内容(AIGC)的不断发展得益于模型算法、可扩展的模型价格以及大规模......
  • 优秘智能开源AICMS:快速开发AIGC应用的必备,SAAS营销管理和AI的API全方位接入
    随着人工智能技术的飞速发展,AIGC(AIGeneratedContent)已经成为了当今科技领域的热门话题。为了帮助更多的企业和开发者快速开发AIGC应用,优秘智能近日开源了其强大的AICMS(AIContentManagementSystem)平台,助力开发者高效构建各类AIGC应用。一、优秘智能AICMS简介优秘智能是......