内容正文:
第10课
循环结构—while循环
知识回顾—for循环
2
for循环语句是通过遍历某一序列对象来构建循环,循环结束的条件就是对象遍历完成。
应用举例
运行结果
for循环中,由于遍历结构的确定,使得循环次数是明确的。
知识回顾—for循环
3
但生活中很多循环是难以确定遍历结构,难以明确重复次数的。
请你吃小馒头,不规定个数。没吃饱,继续!吃饱了,就不要吃了!
根据 控制循环
条件
While语句———条件循环
while循环语句格式
4
while循环语句的一般格式
while <条件> :
<循环体>
[else:
语句块]
“吃馒头”循环执行流程图
没有吃饱
继续吃1个
是True
否Flase
不吃了
while循环的执行流程图
条件
循环体
是True
否Flase
在循环体中,一定要包含改变测试条件的语句,使循环能够结束,以避免产生死循环。
while循环语句随堂练习
5
阅读如下程序,当循环结束后,X的值是( )。
50
72
168
0
6
案例:通过键盘输入多个数,结束后输出这些数的和。
问题分析
算法设计
编写代码
调试运行
7
问题分析
算法设计
编写代码
调试运行
循环终止条件:按回车键
输入数据
xstr
处理数据
(求和s、计数i)
输出数据
(i,s)
输入次数不定,用while循环语句。
循环条件:输入字符不为空
Python中直接按回车键,则输入的为空字符串。
while
输入字符不为空
案例:输入多个数并求和
8
问题分析
算法设计
编写代码
调试运行
结束
开始
累加器s←0
计数器i←0
输入循环计算的数xstr
while xstr!=“”
真
x←字符串转为浮点数
累加求和
累加计数
输入循环计算的数xstr
否
输出数的个数
输出总和
输入数据
xstr
处理数据
(求和s、计数i)
输出数据s
while
输入字符不为空
案例:输入多个数并求和
9
问题分析
算法设计
编写代码
调试运行
结束
开始
累加器s←0
计数器i←0
输入循环计算的数xstr
while xstr!=“”
真
x←字符串转为浮点数
累加求和
累加计数
输入循环计算的数xstr
否
输出数的个数
输出总和
案例:输入多个数并求和
10
问题分析
算法设计
编写代码
调试运行
按F5键,多次输入数字,观察运行结果。
11
开
动
脑
筋
上例中,通过输入“quit”退出循环,如何修改程序?
循环控制语句:break和continue
12
循环控制语句,也称跳转语句,其功能就是改变循环语句的执行顺序。在python中,循环控制语句主要有break和continue。
break
打破,损坏
执行结果
continue
持续,继续
执行结果
功能:跳出当前循环,不再判断执行循环的条件是否成立。
功能:结束当前的当次循环,但不跳出当前循环,继续判断执行循环的条件是否成立。
在python中,经常将if条件判断语句和 循环控制语句break、continue结合,实现有条件的改变循环执行顺序。
循环控制语句随堂练习
13
阅读如下程序,填写输出结果并上机测试。
输出结果:
循环控制语句与else子句
14
for循环和while循环中,都可添加[else子句]。但循环控制语句break和continue对[else子句]的影响是不一样的。
[else子句]
不被执行
[else子句]
被执行
执行结果
执行结果
Break
continue
因为break语句是结束整个循环,所以[else]子句不被执行,而continue语句对[else]子句没有影响。
15
Break
continue
功 能
跳出当前循环,不再判断执行循环的条件是否成立。
[else子句]不被执行
功 能
结束当前的当次循环,但不跳出当前循环,继续判断执行循环的条件是否成立。
[else子句]没有影响
循环控制语句与else子句
while True 登录程序设计
16
“while True”语句中,判断条件永远为真,是无限循环。
如果用while Ture 来改写上一个程序,红线处应该填写什么语句,请完成填写并测试运行。
True
语句块
while True 经常用在不知道确定循环次数的循环中,使用时可在循环内部通过判断,配合break和continue,跳出循环,巧妙编写程序。
while True 登录程序设计
17
用while True 设计一个“登录程序”,先判断输入帐号是否为“admin”,再判断输入密码是否为“Python@16”。若帐号或密码不正确,则反复要求输入,直到输入的帐号和密码都正确,退出循环并输出“登录成功”。
问题分析
算法设计
编写代码
调试运行
while True 登录程序设计
18
问题分析
算法设计
编写代码
调试运行
输出登录成功
while True:
判断密码
判断帐号
(对)
帐号密码初始化
(错)
输入帐号
(错)
重新True循环
(对)
结束当前循环
重新True循环
退出True循环
1、为什么将“输入帐号”的过程放在“判断账号”输入错误的分支下?而不是直接放在True循环的第一步。
2、为什么要将帐号事先初始化?
输入密码
while True 登录程序设计
19
问题分析
算法设计
编写代码
调试运行
结束
开始
user置初值空
psw 置初值空
True
是
continue
否
登录成功
user!=admin
输入帐号user
输入密码psw
psw==Python@16
是
否
输出登录成功
while True:
判断密码
判断帐号
(对)
(错)
输入帐号
输入密码
(错)
重新True循环
(对)
结束当前循环
重新True循环
退出True循环
帐号密码初始化
break
while True 登录程序设计
20
问题分析
算法设计
编写代码
调试运行
结束
开始
user置初值空
psw 置初值空
True
是
continue
否
登录成功
user!=admin
输入帐号user
输入密码psw
psw==Python@16
是
否
break
while True 登录程序设计
21
问题分析
算法设计
编写代码
调试运行
按F5键,根据提示输入帐号和密码,观察运行结果。
知识回顾——while条件循环
22
while循环语句的一般格式
while <条件> :
<循环体>
[else:
语句块]
功能:结束当前的当次循环,但不跳出当前循环,继续判断执行循环的条件是否成立。
while循环的执行流程图
条件
循环体
是True
否Flase
True
语句块
while True循环流程图
知识回顾——while条件循环
23
while 循环中,可在循环内部通过判断,配合break和continue循环控制语句,跳出循环,巧妙编写程序。
跳出当前循环,不再判断执行循环的条件是否成立。
[else子句]不被执行
结束当前的当次循环,但不跳出当前循环,继续判断执行循环的条件是否成立。
[else子句]没有影响
break
continue
谢 谢!
24
Lavf57.83.100
Lavf57.83.100
$$