python常见的控制流结构有_写Python这么多年里面的控制流你整理过么

什么是控制流

91529822720e0cf3118a902fa28f151bbf09aa30.jpeg?token=792286f5690ebd6e750b58f27faabc09&s=AD8A777FA3C44943504129CF02007032

在计算机中程序总是一行一行的顺序执行,那所谓的控制流程,其实就是控制程序的执行流程,改变程序执行的分支,实现不同的逻辑的处理

程序员的思考

很多人学编程最后,脑子里面记住的可能就是IF、For、 While语法结构是什么样的,而从来不会思考这些东西到底是什么,到最后可能学习很长时间,可能还会忘记之前学的,反反复复,可能最后也就放弃了

控制流的分类

其实在语言设计上针对控制流是有明确的分类滴,我们可以根据这种分类,先建立大的思维导图,然后再去看语法,毕竟语言千千万,语法各不同

顺序执行

4e4a20a4462309f7656720f3dac7ebf7d6cad612.jpeg?token=e8315e11969c07763e88ccb759def96c&s=1A05A144CD8E3F704C40148E0000E088

计算机中程序都是顺序执行, 比如这里我们定义了一个users,然后一步步的对它进行操作,最后完成我们的目标, 那有没有什么问题呢, 其实是有的那就是我们常说的副作用

c83d70cf3bc79f3d151d956f13682a15738b293b.jpeg?token=2f820c956bbd6416aff73f9032cbb18d&s=1A01A14C9BA88B720EC470860000A08A

我们可以看到当我在add中,因为users是list本身传递的是一个引用,所以会造成对main函数中后续执行依旧会有影响

选择

91529822720e0cf3d9e2d832a28f151bbf09aa34.jpeg?token=ffeccb1ed0ea19777cfdaccfa9057cdf&s=1A11A14C83F0A0734CE419030000A082

选择是根据条件判断来进行流程分支的选择执行, 语言一般通过 IF来进行, 同时通过elif、else来实现多分枝选择,一些语言里面还有switch,python里面并没有支持

选择执行中一般常提到的一个东西就是短路,就是当某个条件先被满足,就不需要后续条件的判断了

迭代

迭代是为了让程序能够反复执行某一类操作, 类似功能的还有递归,迭代循环在语言设计中一般包含两种:枚举控制和逻辑控制两种循环操作

枚举控制

6d81800a19d8bc3e16e6470b2942411aaad34557.jpeg?token=68458996eadf92f55279ff169f5d5ed3&s=B59A377F85B264235A40FC4A02006071

枚举控制其实就是枚举集合中的每个元素,然后进行处理,这个过程中,其实编程语言隐士的帮我们吧状态保存这种操作给实现了

bf096b63f6246b60886bb5834031fd48500fa22a.jpeg?token=46dc2d8d3882bfd681e08c1ef97b42dc&s=1A01A14CCD8C3F705E74448A0000B082

逻辑控制

72f082025aafa40fa1608e4c00ade44b7af019cf.jpeg?token=cb12705133cfbe67abadb88c8cff4fa0&s=ADDAA35F8BCE48C810CCE54B0200C072

逻辑控制是指循环执行某个操作,直到满足某个条件

b58f8c5494eef01ff4b3150c48377e21be317da6.jpeg?token=e884fc06aa9862fcabb810b9eb4ca5e7&s=1615A16C9BECAD704CCD1C8600007082

递归

3801213fb80e7bec5afad46b87e75e3c9a506b62.jpeg?token=9e9007a0cd6b45e40abe0124602d3df0&s=A59EE37FCFB6688A1CE5D24A0200E070

递归其实也是控制流里面的一种,但它不需要特殊的语法支持,只需要子程序直接或者间接的循环调用自己即可

递归的主要问题是什么呢, 在递归调用的过程中,需要重复的进行栈空间的分配和切换,虽然在某些语言中编译器会直接通过尾递归来优化,但在很多语言中并不支持, 递归的东西还是蛮多的,后面可以单独的说下

其他类型的控制流

上面我们已经总结了顺序执行、选择、迭代、递归四种基础的控制流,类似的控制流海包括:异常和并发,后面章节会继续说明, 谢谢大家

欢迎各位pythoner兄弟一起交流分享学习Python的心得, 大家可以关注下本账号,谢谢鼓励

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值