——while循环的改进——
我们之前设置的游戏规则为:只给你三次猜测的机会,如果三次猜不中,就显示你已经猜了太多次退出了。现在我想修改游戏规则为:当你三次都猜错了之后,会询问你你是否还想继续猜。如果是的话,可以继续给三次机会进行猜测,如果否就退出。
主要的思想是:在while循环内,这时的count已经等于3,我们在此时设置一个确认标志,如果这个这个确认标志不是N,我们就继续猜,方法是可以把count清零,给count赋值为0,再返回判断count<3,可以继续while循环;如果确认标志为N,count就不满足count<3的条件了,就会退出游戏。
此时程序为:
继续猜的情况下:
不想继续猜的情况下:
——for循环——
先写一个最简单的for循环:
上面这个for循环,从loop0打印到了loop9。
i是个临时变量,range(10)就相当于生成一组数,(0,1,2,3,4,5,6,7,8,9),每循环一次,就取一个数,第一次是0,第二次是1,……等等,然后执行下面的循环内容,这样这个循环就执行了10次。
把之前猜年龄(有三次机会)的while程序可以稍作修改,改成 for循环的:
结果依然是正确的:
else什么时候执行呢?当for循环完整的走完之后走else语句。
我现在又有新的想法,之前打印的是loop0、loop1、loop2、……、loop9,现在我想隔一个打印一个,比如打印loop0,、loop2、loop4、等等,这个该怎么操作?
那隔两个打印一个呢?
range(),括号里面的格式为:起始位置,终止为止,步长。(步长默认为1)
——continue的用法——
我们都知道,循环里面一般有break,除此之外,还有对应的一个用法就是continue。
为了了解这个循环的执行步骤,我们断点执行一下:
①先是i等于0,走到下一步,判断i<3
②打印输出“loop0”
③if条件满足,所以不会走else语句,然后往下继续执行,打印输出“hello”。
④第一个循环结束,返回循环。
⑤开始第二个循环,注意此时的i等于1,判断if条件,i<3满足。
⑥打印输出“loop1”。
⑦if条件满足之后,就不会再走else语句了,然后往下继续执行,打印输出“hello”。
同样的,i=2时同i=1和i=0是一样的。
⑧当i=2结束时,返回循环。
⑨i=3,判断if条件,不满足。走else语句,是continue,返回循环。
⑩返回循环。
(11)i=4,判断if条件,if条件不满足。
(12)走else语句,然后是continue,返回循环。
i=5以后都是一样的。
我们来总结一下,break的作用是跳出整个循环,continue的作用是跳出本次循环,继续到下一次循环。
举个例子:
结果为:
大循环套小循环,一共打印了100次。
我们在小循环里面加一个条件判断:
结果是这样的:
一共打印了40次。
这样就看出了break的作用,break的作用是跳出当前的小循环,而不是两层循环都跳出了。
附:三次结束后询问要不要继续猜的for版本。
网友评论