1、引入
张三Python平时测验成绩未达到自己的目标。为了表明自己勤奋学习的决心,他决定写一百遍“好好学习,天天向上!”
print(“第1遍写:好好学习,天天向上!”)
print(“第2遍写:好好学习,天天向上!”)
print(“第3遍写:好好学习,天天向上!”)
……
print(“第100遍写:好好学习,天天向上!”)
决定写一万遍“好好学习,天天向上!” ,怎么办?
2、循环介绍
日常生活中很多问题都无法一次解决,如盖楼,所有高楼都是一层一层建起来的。还有一些事情必须周而复始地运转才能保证其存在的意义,如公交车、地铁等交通工具必须每天往返于始发站和终点站之间。类似这样反复做同一件事的情况,称为循环。
循环就是重复地做。比如上面就是重复地写“好好学习,天天向上”。其实生活中也有很多循环的例子。(分析这些例子的共同点)
打印50
份试卷:
循环条件:只要打印的试卷份数不足50
份就继续打印。
循环操作:打印1
份试卷,打印总数加1
。
万米赛跑:
循环条件:跑过的距离不足10000
米就继续跑。
循环操作:跑1
圈,跑过的距离增加400
米。
锲而不舍地学习:
循环条件:没有达到预定的目标就继续努力。
循环操作:学习,离预定的目标更接近。
滚动车轮:
循环条件:没有到目的地就继续。
循环操作:车轮滚一圈,离目的地更近一点。
循环的特点
首先,循环不是无休止地进行,满足一定条件的时候循环才会继续,称之为“循环条件”。循环条件不满足的时候,循环退出。
其次,循环结构就是反复进行相同的或类似的一系列操作,称为“循环操作”。
什么是循环
循环就是不断重复的执行。
从循环条件和循环操作的角度来看,循环就是要满足“在什么条件成立的情况下要做什么事情”。
什么情况下使用循环
一般情况下,需要多次重复执行的代码,都可以用循环的方式来完成。循环就是在循环条件成立的情况下不断重复地进行循环操作。
循环不是必须要使用的,但是为了提高代码的重复使用率,所以有经验的开发者都会采用循环。
3、Python中的循环
Python程序中的循环结构有二种实现方式:while
循环、for
循环。
- 重复一定次数的循环,称为计次循环,如
for
循环。 - —直重复,直到条件不满足时才结束的循环,称为条件循环。只要条件为真,这种循环会一直持续下去,如
while
循环。
说明:在其他语言中(例如,C
、C++
、Java
等),条件循环还包括do…while
循环。但是,在Python
中没有do-while
循环。
4、while循环
语法及执行流程
while
循环是通过一个条件来控制是否要继续反复执行循环体中的语句。
while 循环条件:
循环操作
当循环条件(条件表达式)的返回值为真时,则执行循环操作(循环体)中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
如果第一次循环条件就不满足的话,直接跳出循环,循环操作一次也不会执行。所以while
循环的特点:先判断后执行。有可能一次也不执行。
示例
i = 0
while i < 5:
print("当前是第{}次执行循环".format(i+1))
print("i={}".format(i))
i +=1
上述一万次好好学习使用循环结构实现如下:
i = 1
while i <= 10000:
print("第{}遍写:好好学习,天天向上!".format(i))
i += 1
为了帮助张三尽快提高成绩,老师给他安排了每天的学习任务,其中上午阅读资料,学习理论部分,下午上机编程,掌握代码部分。老师每天检查学习成果。如果不合格,则继续进行。
分析:使用while
循环的步骤
- 分析循环条件和循环操作
- 套用
while
语法写出代码 - 检查循环是否能够退出
answer = input("请输入检查结果(y-合格,n-不合格):")
while answer == 'n':
print("上午学理论")
print("下午学编程")
answer = input("请输入检查结果(y-合格,n-不合格):")
print("过关了")
死循环
读一读下面的代码
i = 0;
while i < 4:
print("循环一直运行,不会退出")
#这里缺少什么?
条件表达式永远为True
时永远不会退出,称为无限循环,也称“死循环”。“死循环”是编程中应极力避免出现的情况。
在使用while
循环语句时,一定要注意检查循环能否退出,一定不要忘记添加将循环条件改变为False
的代码,即避免出现“死循环”,否则,将产生死循环。
练一练
(1)计算1~100
的累积和(包含1
和100
)。
(2)计算1~100
之间偶数的累积和(包含1和100)。
(3)2020年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
(4)使用while
实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0
度到250
度,每隔20
度为一项,对照表中的条目不超过10
条。
转换关系:华氏温度 = 摄氏温度 * 9
/ 5.0
+ 32
。
(5)猜数小游戏。
随机生成一个0~99(包括0和99)的数字,从控制台输入猜测的数字,输出提示太大还是太小,继续猜测,直到猜到为止,游戏过程中,记录猜对所需的次数,游戏结束后公布结果。程序运行结果如图2所示。猜测次数与游戏结果对照见表1所示。
表1 猜测次数与游戏结果对照表
次数 | 结果 |
---|---|
1 | 你太聪明了! |
2~5 | 不错,再接再厉! |
大于等于6 | 要努力啊! |
提示:产生0-99
之间的随机数字,如下:
import random
num = random.randint(0,99)
(6)今有美酒若干坛,然不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?