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

相关文章

来自专栏码匠的流水账

聊聊HystrixThreadPool

hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java

791
来自专栏一个会写诗的程序员的博客

java.base.jmod

/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/jmods$ jmod list java....

1112
来自专栏码匠的流水账

spring security reactive获取security context

本文主要研究下reactive模式下的spring security context的获取。

1812
来自专栏Golang语言社区

Knapsack problem algorithms for my real-life carry-on knapsack

I'm a nomad and live out of one carry-on bag. This means that the total weight o...

1142
来自专栏专知

2018年SCI期刊最新影响因子排行,最高244,人工智能TPAMI9.455

2018年6月26日,最新的SCI影响因子正式发布,涵盖1万2千篇期刊。CA-Cancer J Clin 依然拔得头筹,其影响因子今年再创新高,达244.585...

1292
来自专栏余生开发

echarts太阳分布图-饼图来回穿梭

var dom = document.getElementById("container");

1202
来自专栏Petrichor的专栏

Dataset 列表:机器学习研究

In computer vision, face images have been used extensively to develop face recog...

1541
来自专栏Hadoop数据仓库

Oracle sqlldr 如何导入一个日期列

1. LOAD DATA INFILE * INTO TABLE test FIELDS TERMINATED BY X'9' TRAILING NULLCO...

1816
来自专栏跟着阿笨一起玩NET

c# 使用timer定时器操作,上次定时到了以后,下次还未执行完怎么处理

------解决方案-------------------------------------------------------- 开始的时候,禁用定时器,你...

2701
来自专栏搞前端的李蚊子

Html5模拟通讯录人员排序(sen.js)

// JavaScript Document  var PY_Json_Str = ""; var PY_Str_1 = ""; var PY_Str_...

5976

扫码关注云+社区