句子大全

句子大全 > 好句子

Python编程10:跳出循环结构之break和continue

好句子 2014-10-03 01:21:24
相关推荐

#少儿编程#

前面我已经向小朋友们介绍了Python语言的循环结构,它有for循环和while循环两种,其中while循环,是在满足某个条件时会一直循环。但有时我们也想能够中途离开循环,也就是在for循环结束计数之前,或者while循环条件为真之前,能退出循环。Python提供了两种方法:使用continue关键字和使用break关键字。

在使用这两个关键字之前,我们先来看一段很简单的代码(图1)。

图1

红框里的这段代码使用了for循环,依次输出1到5。再次提醒,range(1,6)是取1到6之间的数,包括1,但不包括6。紫色框里是程序的运行结果。

下面我们通过在这段代码里添加continue或break来看这两个关键字的用法。

break:跳出循环

如果想完全跳出循环,可以使用break语句实现。我们在图1的代码里添加break语句,如图2:

图2

红框里的代码是我们添加了break语句的代码,整段代码的意思就是i在1到6之前取值,如果i为3,就执行break语句,也就是跳出循环;如果不为3,就输出i的值,并且继续循环。

①处的代码就是:当i为3的时候,执行break语句;

紫色框里是这段代码的输出结果,我们可以看到它只输出了1和2。因为当i=3时,程序执行break语句直接跳出这个循环体,没有执行到后面的print(i)语句,且因为已经跳出这个循环体了,所以i也不会继续在rang(1,6)中取值了。所以,它只打印了1和2。

注意:这里要提醒注意的是代码的缩进,我们知道Python的代码缩进体现了代码的逻辑。for循环下面的代码块缩进了一层,if语句下面的代码块又缩进了一层。如果你break语句没有缩进,和if平齐,那么Python解析时会认为这句break是属于for循环的,而不是if语句的代码块,那你这段代码执行起来就会出错。

continue:提前跳转

如果只是希望停止执行当前这次循环,提前跳到下一次循环,那就可以使用continue关键字。我们再在图1的代码里添加continue语句,如图3:

图3

红框里的代码是我们添加了continue语句的代码,整段代码的意思就是i在1到6之前取值,如果i为3,就执行continue语句,也就是停止执行这次循环,提前跳到下一次循环;如果不为3,就输出i的值,并且继续循环。

①处的代码就是:当i为3的时候,执行continue语句;

紫色框里是这段代码的输出结果,我们可以看到它输出了1、2、4、5。因为当i=3时,程序执行continue语句停止执行这次循环,也就是没有执行后面的print(i)语句,提前跳到下一次循环i=4的时候,由于后面i都不等于3,所以不会触发continue这个语句,都能执行到print(i)语句。因此可以看到输出结果就是除了3没有打印出来,其它几个数字都打印出来了。

【练习】猜数字游戏

上一篇在讲while循环,小朋友们写了个猜数字的游戏,但是那个游戏的设计有点不好,就是如果没猜中就要一直猜。这次我们改写这个程序,要求程序在1~100之间取随机数作为神秘数字,玩家猜是什么数字。

1)如果没猜中:

猜大了就显示提示信息“你的数字大了,请重猜!”,并且让继续猜;

猜小了,就显示提示信息“你的数字小了,请重猜!” 并且让继续猜;

如果猜了8次还没猜中,就停止游戏,显示提示信息“你猜的次数超过8次,停止游戏。”

2)如果猜中了,就结束游戏。

代码如图4,对于这段程序,我主要讲一下新增加的代码:

图4

这段代码和上一篇的猜数字代码相比,多了一个count变量,这个变量是用来累计猜测次数的,如果次数大于8,就停止游戏。

① 当count=1,也就是说第一次猜数字,将输入的数字赋值给变量your_number(图5)。

图5

② 这次我们用到了while……else……语句(图6)。之前我们只用过while语句,就是当满足规定的条件就执行代码块,不满足就退出循环,然后执行后面的代码。这次while……else……语句,就是当满足规定的条件,就执行while下面的代码块,不满足规定的条件就执行else下面的代码块。

图6

在这个段代码里,如果玩家猜的数字不等于随机产生的神秘数字(your_number != secret_number),那就执行下面的代码继续猜;否则就是猜中了,那就打印“恭喜你,猜中了!”那句话。

③ 11行到27行是对猜测次数的判断,如果猜测次数小于等于8(count <= 8),就继续猜,否则的话就打印“你已猜了多少次,游戏结束”,并且使用break语句退出循环,如图7。

图7

注意:

程序看到这里,小朋友就能明白为什么我们要用while……else……语句,而不就用while语句了。

使用break语句退出循环体后,会继续执行后面的语句。如果我们只用while语句,把print(“恭喜你,猜中了”)这句放在while循环体外,那在执行break语句跳出循环体后,就会执行print(“恭喜你,猜中了”)这句。那这样执行的结果就会很奇怪,明明是因为猜了超过8次都没猜中,怎么还来一句“恭喜猜中了”呢?所以,这里我们使用了while……else……语句,把print(“恭喜你,猜中了”)放在else下面的代码段里,这样,当执行break语句跳出while循环后,就不会执行那句print(“恭喜你,猜中了”)了。

④ 如果猜测次数没超过8次(count<=8),就继续猜。count = count+1,是累积猜测次数,每循环一次,变量count的值就加1,直到超过8,执行else下面的语句,如图8。

图8

代码执行的结果如图9:

图9

其实这段程序设计的还是不全面,比如如果有的小朋友比较调皮,他在用键盘输入数字时敲了字母键,那这个程序是会报错的。不过考虑到小朋友们都是初次接触代码级的编程语言,我们现在就先不考虑那么全面,等以后再弥补。

到这一篇,我们把程序设计里的两个非常重要的结构:分支结构和循环结构介绍完了。在中国电子学会举办的全国青少年软件编程Python等级考试的一级考纲里,有要求掌握turtle库,这是一个画画的库,从下一篇起,我们就一起来看看这个库。

原创不易,请勿抄袭。欢迎大家关注我,和我多交流,如果你喜欢,请转赞评三连,谢谢。

想了解更多精彩内容,快来关注和小po一起学编程

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新