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 条评论
登录 后参与评论

相关文章

来自专栏机器学习实践二三事

python中的装饰器

很多时候我们可能会有这样的需求,就是在调试的时候我们会想打印出某些变量出来看看程序对不对,然后在我们调试好了的时候再把这些print语句注释;这样做确实比较麻烦...

251100
来自专栏程序员的知识天地

Python编程入门基础语法详解经典

sample_nest = [(2,4,6),{5:7,9:11,'key':[2,5]},6]

13210
来自专栏我是攻城师

Java基础类String了解一下

当你路过一些商场或者地铁口的时候,有没有被千篇一律的"xx健身,了解一下" 所烦到。

12320
来自专栏编程

Python函数基础

函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件 函数用于将相关功能打包并参数化 在Python中可以创建4种函数 全局函数:定义在模块中 //...

21550
来自专栏marsggbo

c++学习笔记之封装篇(上)

一、类对象 假设我们由Tv这个类,定义如下 注意class结尾要加上分号 class Tv() { int width; int hei...

18860
来自专栏『不羁阁』 | 行走少年郎专栏

OC知识--成员变量(属性,实例变量)的相关知识

21960
来自专栏我的技术专栏

漫谈C++:良好的编程习惯与编程要点

14270
来自专栏用户2442861的专栏

Python补充11 序列的方法 正则表达式 (re包)

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

10110
来自专栏我是攻城师

Java基础类String了解一下

当你路过一些商场或者地铁口的时候,有没有被千篇一律的"xx健身,了解一下" 所烦到。

23850
来自专栏我的技术专栏

C++ 异常机制分析

20940

扫码关注云+社区

领取腾讯云代金券