Python读书笔记16(循环大法好!while少不了)

今天和大家分享一个新的循环语句while!

之前学过for循环语句用于遍历列表、元组、字典内的值,我们重温一下!

这种for循环语句是根据列表元素值的数量来决定循环次数的。

当然for循环可以与range(数量)函数结合来实现有限次数的循环!

但是这两种方式的循环都不够灵活,我们接下来分享用途更加全面的while循环!

while循环的基本语句如下:

while 判断条件:

(我是缩进占位符)循环内要执行的语句

判断条件为真,则执行while内语句,为假不执行!

上期结尾input说他会回来的,那我们满足一下他的心愿吧!

我们看一下上一个图片,是不是输入结束后,程序还是把结束打印出来了!

提个问题,我们上一个图片的程序While判断执行了几次?

正确答案:4次!

为什么是四次呢!

1、message 为空 进行了第1次判断,顺利进入循环内

2、message 在上一次循环中赋值为阿狸,进行了第二次判断

3、message 在上一次循环中赋值为桃子,进行了第三次判断

4、message 在上一次循环中赋值为结束,进行了第四次判断,第四次判断没有通过,while循环结束

那有什么方法不打印这个结束呢?

方法一:增加一个判断如何等于结束,不执行打印语句

for循环内嵌套了一个if函数,如果判断不等于结束才打印,反之不打印。

方法二:增加标志法!

本方法是直接使用一个sign变量作为标志,并且直接作为while循环的判断条件。如果标志为真执行循环,如果输入等于“结束”,标志循环重新赋值为假,则循环判断条件不通过,停止循环语句。

上述两种方案是解决了我们不想打印“结束”的这个问题!但是他循环了几次?是不是还是执行了4次,和之前没有本质的区别,有什么方法可以立即执行while循环判断吗?

方法三:break强制退出循环小能手

while判断条件为真,正常电脑有电,这个程序会执行到天荒地老、海枯石烂、会执行到我不爱你!

如果平时编程真的无意间弄了个无限循环,可以按Ctrl+C强制退出!

在这里我们使用的是break退出循环!循环执行到break的时候会毫不犹豫,直接退出循环的!

四、最后分享一个小东西continue,顺便聊聊缩进的那点事!

为了更好地体现缩进的关系,接下来我用jupyter编辑器和大家分享,其实目前的所有编程都可以用IDLE实现,所以基础课程,非必要我都会继续用IDLE截图!

在while循环中,continue代表的是跳出循环,并且重复执行while判断语句。

score%2 代表求score变量的余数,如果余数等于0则跳出循环、不执行余下语句。反之则执行while循环内的语句。

大家看一下缩进情况,本次代码的Print缩进与if相同,证明地位与if是一致的,print函数不在if内,则是属于while循环内的!

本代码的功能虽然与上一个是一致的,但是print的缩进与continue是一致的,则print是隶属于if函数的,if函数的结果决定是否执行print函数。

我们看一下这段代码,本段代码没有任何输出结果,证明print函数从来没有被执行过,为什么没有执行呢!因为print与continue缩进相同,隶属于if函数内。如果余数等于0,先执行continue后执行print,但是由于continue执行时会直接跳出循环,重复执行while判断语句,故没有机会执行print函数了。

为了方便理解,我们调换一下print和continue函数的位置

总结一下就是,缩进位置相同,代表并列关系,如果缩进多一个,则是上一级的隶属关系。

就酱~下期继续聊聊while和列表和字典的那些事!

原文发布于微信公众号 - 阿凯的Excel(akexcel)

原文发表时间:2018-01-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏owent

C++ 新特性学习(五) — 引用包装、元编程的类型属性和计算函数对象返回类型

这各部分主要是一些很实用和在一些地方帮助编译器自动推断类型的库和函数 首先是引用包装 类名 template< class T > class std::r...

1143
来自专栏web前端教室

会员提问 之 JS中的私有方法有什么意义?

先说结论, (1)JavaScript没有私有方法。 (2)JavaScript的私有方法都是通过“作用域”来实现的。 (3)有没有用?有没有意义?肯定有! 什...

2008
来自专栏前端真相

JavaScript 五种基本数据类型(上)

1598
来自专栏全沾开发(huā)

正则表达式-JavaScript

正则表达式-JavaScript 什么是正则表达式 正则表达式是用于匹配字符串中字符组合的模式。在 JavaScript中,正则表达...

3325
来自专栏java学习

java每日一练(2017/8/22)

本期题目 (单选题)1、对于如下代码段可以放入到横线位置,使程序正确编译运行,而且不产生错误的选项是( ) class A{ public A foo()...

2667
来自专栏Celebi的专栏

C/C++ 学习笔记二(变量、表达式)

工作中经常使用到C/C++,为对C有个比较深刻的了解,重新拾起学习C的任务。在看书的同时,记录下思考的过程,也记录下重要的知识点。

1170
来自专栏Python中文社区

Python迭代器使用详解

这一集的内容看起来比较绕,反反复复出现的是迭代二字。大家注意,这一节的内容很pythonic,是很有特色也非常重要的知识点。敲黑板啦!

730
来自专栏烂笔头

Python魔术方法-Magic Method

目录[-] 介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,例如类的初始化方法 __init__ ,Pyt...

3106
来自专栏前端进阶之路

尾调用和尾递归

尾调用是函数式编程中一个很重要的概念,当一个函数执行时的最后一个步骤是返回另一个函数的调用,这就叫做尾调用。

441
来自专栏木可大大

面向对象的演进过程

我们知道 程序 = 数据结构 + 算法,其中数据结构包括数组、栈、队列、链表、树以及图等,而算法是包含顺序、循环、分支三种逻辑结构的代码,为了使算法能够到处复用...

4219

扫码关注云+社区