13 循环结构及while循环

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循环。

说明:在其他语言中(例如,CC++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的累积和(包含1100)。
(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)今有美酒若干坛,然不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问几何?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值