
上QQ阅读APP看书,第一时间看更新
3.5 while...else与for...else语句
与别的编程语言不一样的是,Python还支持while...else与for...else语句。当有break或者return的时候,while...else和for...else会跳出while块。因为while和else是一个整体,所以也就跳出了else,不执行else语句。
3.5.1 while...else语句
while...else有点类似于if...else,在Python中,while只要遇到了else就会意味到这个条件已经不在while循环中了。
【例3-29】 编写程序,随机产生骰子的一面(数字1~6),给用户三次猜测机会,程序给出猜测提示(偏大或偏小)。如果某次猜测正确,则提示正确并中断循环;如果三次均猜错,则提示机会用完。
分析:使用随机函数产生随机整数,设置循环初值为1,循环次数为3,在循环体中输入猜测并进行判断,如果密码正确则使用break语句中断当前循环。

运行结果:


3.5.2 for...else语句
在Python中,for循环之后还可以有else子句,作用是,如果for循环中if条件一直不满足,则最后就执行else语句。在for循环中加了break后,循环会在if条件满足时退出,后面的else语句不执行。
【例3-30】 for...else语句应用示例—猜年龄游戏。通过输入一个年龄值,然后判断是猜大了还是猜小了。若超过3次,提示“对不起,次数到了!”。

运行结果:
