内容正文:
第 11 课 条件循环显身手
当需要大量重复某段语句块而又不能确定重复次数的时候,我们可以利用while循环来编写程序,解决问题。其特点是:先判断条件表达式,后执行语句。
while语句的一般格式while<条件表达式>:
循环语句块
执行while循环时,先判断条件,若条件成立则执行循环语句块中的语句,循环语句块中的语句执行完毕后,再次判断条件,若条件成立,则继续执行循环语句块,否则结束循环。
二、while循环的应用
小智学校每年植树节都有志愿者服务,规定每人第一年种1棵,第二年种2果,依次类推,编程计算需要连续几年才能种够10棵树。
分析:因为不知循环次数,所以用while 循环。
第1步:新建一个名为plantree.py的程序文件。
第2步:在文件窗口中输入植树代码,保存,如图11-1所示。
求正整数a和b的最大公约数。
分析:求两个正整数的最大公约数的方法有很多,这里介绍一种欧几里得算法。欧几里得算法也叫辗转相除法,具体做法如下:先求a除以b的余数r,然后除数作为被除数,余数作为除数,继续相除,直到余数为零,除数即为两数的最大公约数。
第1步:新建一个名为gcd.py的程序文件。
第2步:在文件窗口输入求最大公约数的代码,保存,如图11-3所示。
第3步:运行程序,输入a、b两个整数的值,程序运行结果如图11-4 所示。
让计算机随机生成一个规定范围内的数字a,用户去猜这个数字是多少?用户猜测的数据b通过键盘输入,程序将a和b进行比较,如果a大于b,输出“猜小了!”﹔如果a小于b,输出“猜大了!”;如果a等于b,输出“猜对了!”,并展示你猜了多少次猜中了!
分析: a和b有三种情况:( 1 ) a>b; ( 2 ) a<b; ( 3 ) a= = b。对于( 1)和(2)两种情况,需要继续输入b;对于第(3)种情况,按要求输出信息并结束程序。注意,程序中需要设一个统计变量,记录猜测了多少次。
第1步:新建一个名为guess.py的程序文件。
第2步:在文件窗口输入猜数游戏代码,保存,如图11-5所示。
函数random.randint(m,n)可以随机产生一个值在m与n之间的整数。若要使用random模块中的函数,需要在程序中使用import random 语句导入random模块。
小智受猜数游戏的启发,又编写了一个数字密码游戏,数字密码满足下面的规律