循环,英文名loop。

用于比喻周而复始、花开花谢、月圆月缺、循环无尽。

我记得法国作家 罗曼·罗兰 曾经说过「多数人二十或三十多岁已经死了,他们变成自己的影子,不断重复以前的自己」。

当初看到这句话时我会想了过去我生命中的前三十年,我可以理直气壮的说:“那我应该要做那少数人,因为作为一个程序员,我不允许我的生活不断的重复以前的自己,这也是我上一章提到过的,不要重复你自己(DRY原则)”。

人生不要重复,但计算机可以,甚至我们要利用计算机的特性把重复大搞特搞,只有当计算机按照我们的想法不断的循环运行着那些永无止境重复的任务,我们的身体和精神才能解脱出来,把宝贵的生命留给更多的有意思的事物上。(人生苦短,请用python)

本章知识点 :for循环

while循环

今天我们来讲python的循环语句,以 for in和while 两种为主 。

for循环

首先我们来看看for循环的语法

for 变量名 in 迭代对象(列表,字典,元组,字符串等):

代码块

在python中for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

就像宇宙大爆炸之后就先有了第一缕光,每一种编程语言一开始就有了循环语句一样。

我们在之前的python基础教程里或多或少已经看到过循环的语法,通常是for in这样的格式,叫做for循环,在其他(C语言、JAVA、js等绝大多数)语言中均有for循环这个语句,仅仅是写法可能有些细微的区别。

来我们先来看看C语言的for循环语法。

是不是有点复杂?比起来还是下面python的更适合初学者理解一些。如图所示我们创建了一个简单的循环,从1到5依次循环,并打印5个数字。

当循环开始时,程序会在第一行和第二行来回的切换执行。

1: 第一行首先通过range(5) 产生一个可用于迭代的对象,下标位从0开始,也就是(0,1,2,3,4)。

注意:range不会直接产生一个元组或列表对象,它只会在被循环(迭代)的时候才动态的去取出值,这是它的一个特性,为了节省内存空间,定义时不申请,只在使用时申请。

2: 给变量i赋予当前range(5)的起始值后,程序自动流转到第二行,打印当前变量i的值,也就是打印0。

3: print函数结束后,程序自动判断当前执行次数,如果还没满足5次,就回到第一行将(0,1,2,3,4)中的第二个值,也就是1继续赋值给变量i。

4: 程序继续流转到第二行,打印当前变量i的值1。

程序这样周而复始,直到循环5次后结束本次循环体。

下面这个动画用于说明变量i的变化和语句之间的跳转,做得比较粗糙,见谅。

多层循环

前面讲if条件语句时我们用到了嵌套if条件语句,在循环里,我们同样可以嵌套,下面看一个例子。

来解释一下程序的运行过程。

1:程序从第一个循环开始,首先进入第2行。

2: 打印了“外层嵌套0”这么一句话,接着进入第三行的循环区块里。

3:for j in range(3) 这里表面需要循环三次,所以在这个循环体里连续运行并打出了3行文字。

“内层循环0、1、2”

4:直到内层的三次循环结束,又回到上一层循环中,继续下一个轮回。

如果循环的层级数足够的多,程序就像在盗梦空间里穿越一般,一层层的下去,直到迷失在里面(可能是死机)。

所以我们平时在编写代码逻辑时,需要尽量把功能模块拆分开,不要用超过2-3层循环去做一件事情,第一是程序运行速度可能会变慢,第二是这样也不利于我们清晰的分析代码。

循环中的变量作用域当前循环体里只能用到自己或者更上层(1层或多层)循环体里的变量值,无法用到下层循环体里的变量值。

代码例子循环中 i和j 变量是每次通过 for in语句 一个迭代对象临时产生并赋值给变量的,如果在上层循环使用下层循环的,会出现变量未定的报错。

下层循环可以用到上层循环for in所产生的变量,这个时候变量的值是当前上层循次数值。

9*9乘法表

现在我们用双层循环来打印一个9*9乘法表吧。

因为9*9 乘法表需要从1开始,于是我们在range里的起始值就是1,结束值是10,正好可以取到1-9、9个数字,至于为什么不取10,这牵扯到一个所谓 语法解析里左闭右开区间 的规则,python的这个规则和别的语言基本一致,这里不详细展开。

我们只需要简单的理解为最后一位10就是我们跳出循环的条件即可,当数字要等于10或者别的上限值的时候,跳出当前循环。

这个9*9乘法表大家可以用我开始那个动画图的方式,自己在纸上模拟一下,看看为什么得出这个结果,至于第三行print的用法是为了在屏幕上排版好看而已,你也可以不用这么排版。

第四行的print()作用可以理解为换行。

while循环

相比起 for循环来说,while循环更像是一束从宇宙深处穿射出来的光线,奔向不知深处的尽头,在没有人阻止它之前,它会不知疲倦不会消亡的一直前行下去。

如果把上面这段话翻译得通俗一点应该就是,while像一个不撞南墙不回头的倔小子。

看看while的语法:

while 逻辑表达式(True或者False):

循环体里要执行的语句

如果逻辑表达式为True,那while就一直循环,否则就停止循环。

上面这段代码我用到了 while循环打印当前系统事件。

因为while循环一旦跑起来就收不住,于是我用time.sleep()这个函数做了一个两秒的休眠时间,所以程序每隔两秒才打印一次时间。

然后直到我强行停止程序才会结束。

想想看,如果我去掉那个2秒的时间休眠会怎么样?

这就收不住了,系统会在一秒钟内打印很多条时间记录,应该是微秒级别的,能打多少条取决于我的电脑有多快。。。。。。

如果我们想结束while循环该怎么做呢?没错,设置while 语句后面的逻辑表达式为False。

解释下以上代码。我们设置了一个计数器,变量为count,赋值1。

然后设定while循环的条件是 count小于等于5,条件为真,于是开始进入循环体。

打印当前count的值和时间

每次在循环里都对当前count的数字加1,于是count的值会随着循环的次数不断的增加。

当count的值加到6时,不符合count<=5的循环条件了,退出循环。

因为不会再进入循环里,所以不会再打印count的值为6,但实际上这个时候count在内存里的值确实是6。

可能有机智的朋友会想到,while循环能嵌套吗?当然可以,只要不怕程序迷失,结束条件清晰,不管怎么嵌套都行。

for循环嵌套 while,while里面又嵌套 for,怎么组合都随心所欲。

还有控制循环的break和continue语句将在以后的时间里讲到,今天大家先消化for和while的基本用法吧。

关于循环,我们能用它干的事情很多。创建一个网络服务,接受客户端的请求并进行处理,只要计算机不挂掉,它就永不停止。

打开一个Excel文件,循环读取每一行或者每一列的数据,在内存中处理完数据后再保存起来。

循环产生1000万条随机加密的字符串,用于某个产品的防伪认证标志,流向市场。

写一个程序,每天早上8点给自己发消息提醒今天一天的事项安排,中午12点发消息提醒自己该吃饭了等等,每天不间断,周而复始,这相当于条件判断和循环语句的结合使用。

总结:

从以上两种循环我们得出一个大致的结论就是。

for循环是在一个预先给定好的、有限的范围内进行循环,直到循环次数等于或大于这个给定范围上限,退出当前循环。

while循环是一开始就会循环起来,除非我们给他一个明确的停止条件(True,False)。

我们一生要干的事情很多,请尽量减轻我们的重复工作量吧。当我们要去优化一件事情的流程时,我们首先要观察它是否是一件重复的工作,每次重复之间有哪些一样或者不一样的变化,用变量去解决它们,然后丢给计算机,我们坐下来喝喝茶,大脑放空,思考人生。

去创造更有价值的事物,这就是人和人工智能的区别!

欢迎关注我 “纸飞机编程”,获取更多有趣的python教程信息。

python允许无止境的循环_python基础课程 第6章 循环(无尽的未来)相关推荐

  1. python入门之运算符的使用的答案_python基础课程 第2章 (运算符)

    纸飞机编程 2019-12-09 17:11:26 算术运算符 加,减,乘,除 四个运算符是我们平时最常用的运算符 在Python中分别用+ - * / 四种符号来表示,运算优先级是先乘除再加减 取模 ...

  2. python定义一个人类_python基础课程 第9章 面向对象编程(上) 一场人类进化史

    日月灿烂,若出其中,星汉灿烂,若出其里. -- 曹操.观沧海 东汉末年 人类文明以降,总会有无数的人通过对世界的观察和思考去总结我们从哪里来,要往哪里去. 遥远的古代我们的祖先通过想象力把数字变成了符 ...

  3. python允许无止境的循环吗_Python第一天 - 思想永无止境的个人页面 - OSCHINA - 中文开源技术交流社区...

    下载安装python以及相关软件. python 直接到python官网下windows-msi文件,版本根据需要下2.7或3.0. pydev 自己网上搜,pydev官网的反而不行(eclipse上 ...

  4. python for循环连续输入五个成绩判断等级_Python基础(1)——输入输出/循环/条件判断/基本数据类型...

    一.编程语言 1. 编译型语言:先编译,再执行 (先编译成二进制) 举例:英文书翻译成中文再看 C.C++.C# 2.解释型语言:一边执行一边编译 举例:英文书找个翻译,它翻译一行你听一行 php.j ...

  5. python if和while的区别_python基础--while循环和if判断、基本运算符

    基本运算符 算术运算符 用于算术运算,主要有 :+.-.*./.%.//.** 比较运算符 用于对象比较,主要有:==.!=.<>. >.>=. 赋值运算符 用于算术运算后赋值 ...

  6. python中for循环缩进_Python基础- 缩进,选择和循环

    缩进: Python最具特色的是用缩进来标明成块的代码.下面我以if选择结构来说一下 if x >0: print "Test" print "Hello,worl ...

  7. python 两个变量同时循环_python基础篇(子非鱼)

    子非鱼,安知鱼之乐! 学习python的快乐你想象不到   本章主题: 运算符 流程控制 函数 a='少年'b='下山'if a < b : print("我还是从前那个少年" ...

  8. python三层for循环_Python基础入门-For循环

    For循环的功能比较强大,他可以帮助我们实现很多重复性的工作.而且for循环能迭代不同的数据结构.他的应用也十分的广泛,作为初学者,我们需要对循环的概念多加理解和练习.接下来我们就来学习for循环的一 ...

  9. python基础语法whike循环_python基础语法 - 循环

    while循环 1.基本语法 while 条件: -- if 条件: continue # 条件满足跳过当次循环 if 条件 break # 条件满足中止循环 else: # 只有当while循环结束 ...

  10. python各种类型的数据拼接_python基础2 数据类型、数据拼接、数据转换

    一.数据类型 1.字符串 字符串英文string,简写str,只要是被[单/双/三引号]这层皮括起来的内容,不论那个内容是中文.英文.数字甚至火星文.只要是被括起来的,就表示是字符串类型 如:prin ...

最新文章

  1. 关于matlab向文件写入数据的方法——留着备用
  2. Linux常用命令汇总(二)
  3. Axure 6.5 RP下载,汉化
  4. linux下用iptables做本机端口转发方法(转载)
  5. 如何通过数据包套接字攻击Linux内核
  6. wxWidgets:wxDir类用法
  7. plsql连接oracle未找到oci,Plsql Developer连接Oracle时出现Could not initialize oci.dll解决方案...
  8. 7-6 jmu-Java-02基本语法-06-枚举 (3 分)
  9. IP协议详解---Linux学习笔记
  10. [蓝桥杯]算法提高 金属采集(树形dp)
  11. C#和其它C语言的区别
  12. mysql 磁盘组_第15期:索引设计(索引组织方式 B+ 树)
  13. 你们和父亲关系怎么样?
  14. 为了让你的网页能在更多的服务器上正常地显示,还是加上“SET NAMES UTF8”吧...
  15. linux less命令详解
  16. AutoCAD启动自动加载程序的研究
  17. Scala下载及IDEA安装Scala插件(保姆级教程超详细)
  18. 服务器搬迁方案_机房搬迁方案
  19. 数据分析项目实战——链家深圳二手房房源数据分析
  20. 计算机组成原理输入输出系统——DMA方式

热门文章

  1. 使用Python实现淘宝订单定时付款
  2. win10动态壁纸怎么设置_教程丨WIN10系统下设置固定IP或动态IP
  3. 上课作业(5)——#576. 饥饿的牛(hunger)
  4. Lesson 63-64 Who has the most stressful job?
  5. 【虚拟机Linux系统】如何将系统语言由英文改成中文?
  6. 微信公众号图文 点击显示图片效果
  7. 2020年小米高级 PHP 工程师面试题
  8. 盛唐气象:李白的诗与酒
  9. 2021-03-28
  10. Linux文件误删的恢复