(共17张PPT)
第10课 循环结构——while循环
新知导入
在母亲节这天,我们想用python跟妈妈说一百遍“妈妈,我爱您!”
print (“妈妈,我爱您!”)
print (“妈妈,我爱您!”)
print (“妈妈,我爱您!”)
…(还有97遍)…
for i in range(1,101):
print("妈妈,我爱您!")
否
条件
循环体
真
while语句一般格式
while 条件 :
<循环体>
else:
<执行语句>
这两句可
以不存在
while之下,所有缩
进内容都是循环体
while循环的执行流程
while循环语句
新知讲解
while语句的一般格式
while <条件 > :
<循环体>
x = 1
x<=100 :
print (“妈妈,我爱您!”)
x =x+ 1
[else:
语句块]
while
否
条件
循环体
真
while循环的执行流程
x = 1
while x<=100 :
print (“妈妈,我爱您!”)
x =x+ 1
新知讲解
print (“妈妈,我爱您!”,x)
while x<=10 :
print (x)
x =x+ 2
x=1 判断x<10 输出 1
x=3 判断x<10 输出 3
x=5 判断x<10 输出 5
x=7 判断x<10 输出 7
x=9 判断x<10 输出 9
x=11 判断x>10 循环结束
当条件为真(True)时,一直执行循环体语句,直到条件为否(False),循环结束。
x =x- 2
实例
编写一个“登录程序”,实现输入账号和密码,并校验是否正确。
“登录程序”,判断输入的账号是否“admin”、密码是否为”Python@16”。若账号或者密码输入不正确,则反复要求输入,直到输入的账号和密码都正确,退出循环并输出“账号和密码正确,登录成功!“。
user≠”admin”或 pwd≠”Python@16 ”
输入账号user
输入密码pwd
算法流程图
开始
输入账号user
输入密码pwd
输出“账号或密码有误,请重新输入!”
结束
输出“账号和密码正确,登录成功!”
否
是
#输入账号和密码
user=input("请输入账号:")
pwd=input("请输入密码:")
while user!="admin" or pwd!="python@16":
print("账号或密码有误,请重新输入!")
user=input("请输入账号:")
pwd=input("请输入密码:")
print("账号和密码正确,登录成功!")
编写代码
假设纸的长度足够长,厚度为0.1毫米,将纸对折一次厚度增加1倍。现在对折纸张,直到总厚度超过珠穆朗玛峰的高度为止(2020年珠穆朗玛峰的高度测量为8848.86米)。求对折纸张的次数?
(1)算法自然语言描述如下:①纸的厚度h赋初值0.0001,对折次数C赋初值0;②对折一次,h=h*2,c=c+1;③若h≤8848.86,則返回②,否則執行④;④輸出C值。
(2)程序代码填空:h=0.0001 #折算到单位米c=0while h<=8848.86: h= c=
print(“需要对折次数为:”,c)
随堂练习
h*2
c+1
随堂练习“输入多个数,输出这些数的和”,由于在输入数据之前,不知道输入多少次, 因此用while循环语句来实现。
算法流程图
#计数器和累加器置初值0
s=0
i=0
#输入需循环计算的数,并给出结束循环的条件
xstr=input("请输入数【直接回车则退出】:“)
while xstr!="":
x=float(xstr)
S=S+X
i=i+1
xstr=input("请输入数【直接回车则退出】:")
print("\n输入个数为:",i)
print("输入数和为:", format(s, ".2f") )
编写代码
累加语句格式
现实运用
智能垃圾桶
servo_0.write_angle(0)
while True:
if ultrasonic.distance() <= 15:
servo_0.write_angle(80)
oled.fill(0)
oled.DispChar(str("请扔垃圾"), 0, 0, 1)
oled.show()
time.sleep(3)
else:
servo_0.write_angle(0)
oled.fill(0)
oled.show()
现实运用
智能垃圾桶
课堂总结总结本节课所学内容
while循环语句
课堂总结
while语句的一般格式
while <条件 > :
<循环体>
else:
<语句块>
否
条件
循环体
真
while循环的执行流程
作业布置
课本P47页,随堂练习2。