内容正文:
2.3 周而复始的循环while
教科版必修一《数据与计算》第二单元第2课时
知识回顾
2、如下Python程序段要打印0到100的数字,程序中的X应是多大整数()
for i in range(X)
print (i)
A、99 B、100 C、101 D、98
1、下面代码的执行结果是( )
object=["石榴",1,"香蕉","橙子","梨子"]
object[0]="苹果"
print (object)
A、["石榴",1,"香蕉","橙子","梨子"] B、["苹果",1,"香蕉","橙子","梨子"]
C、["梨子",1,"香蕉","橙子","苹果"] D、[1,"香蕉","橙子","梨子"]
3、for i in ["你踩到朕的裙子了","超出三界之外,不在五行之中"]:
print (i)
A、你踩到朕的裙子了 B、你踩到朕的裙子了 超出三界之外,不在五行之中
超出三界之外,不在五行之中 C、"你踩到朕的裙子了" "超出三界之外,不在五行之中"
条件循环一般用于循环次数未知的情况
在python中,使用while语句来创建这类循环。
新课学习
while语句的基本格式:
while 关系表达式:
语句或语句组
用关系运算符连接起来的式子
运算符 == > >= < <= !=
含义 等于 大于 大于等于 小于 小于等于 不等于
例如:a>=10、b!=100、c==1等
新课学习
while语句的基本格式:
while 关系表达式:
语句或语句组
循环条件
循环体
只有当循环条件成立(为真)时,才执行循环体。
新课学习
判断条件成立时,执行循环体;
再次判断条件,条件成立时执行循环体......
直到条件不成立时,退出循环。
while循环执行的过程:
条件
循环体
是
否
循环结构
新课学习
检
条件循环
while 关系表达式:
语句或语句组
s=0
while s<=30:
s=s+10 #循环体
print(s) #循环体
运行结果:
第1次循环结束:s=10
第2次循环结束:s=20
第3次循环结束:s=30
第4次循环结束:s=40
10
20
30
40
s=0
while s<=30:
s=s+10
print(s)
新课学习
小试牛刀:
s=0
while s<=30:
s=s+10
print(s)
运行结果:
40
新课学习
条件
循环体
是
否
问题:如果循环条件一直成立,程序会怎么样呢?
循环结构
新课学习
s=0
while s>=0:
s=s+10 #循环体
print(s) #循环体
循环条件一直成立
特殊关系表达式:数字0表示假,非0数字表示真。如:while 1即可表示条件一直成立。
猜想:如果循环条件一直成立,那么程序会不会一直执行下去?
新课学习
结论:如果循环条件一直成立,那么程序会一直执行下去。通常,我们不会让程序陷入这种“死循环”(无限循环)的境地。
按快捷键Ctrl+C即可终止无限循环
新课学习
问题解决:计算理财产品收益
某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,会提取2万元用作生活所需,余下资金仍购买此种理财。在收益率不变的情况下,多少年后资金被全部取出?
i 年以后资金被全部取出。
不满足 money>0,
本金: money =100000
money: 理财账户当前的资金数量
满足 money>0,
一年后: money=money*(1+0.037)-20000
满足 money>0,
两年后: money=money*(1+0.037)-20000
■■■
满足 money>0,
i 年后: money = money*(1+0.037)-20000
问题解决
year = 0
money>0?
money=money*(1+0.037)-20000
year=year+1
输出year
结束
否
开始
money = 100000
是
money=100000 #本金100000元
year=0 #理财年数赋初值为0
while money>0: #当本金未被全部取出
money=round(money*(1+0.037),2)-20000 #计算新的理财金额
year=year+1 #理财年数加1
print(year,“年后资金被全部取出”) #输出结果
口
×
在Python 语言中,可以借助调试器pdb, 查看变量的值,检查调试程序中的错误。
例如:在程序开头假如语句“import pdb”,在适当的位置放一个“pdb.set_trace()”,就可以设置断点,让程序暂停运行,进入pdb调试环境。
“p”查看变量的值
“c”继续运行程序
“q”结束调试,退出程序
程序调试
import pdb #导入调试器
money=100000
year=0
while money>0:
money=round(money*(1+0.037),2)-20000
year=year+1
pdb.set_trace() #设置断点
print(year,”年后资金被全部取出” )
1、如下Python程序段
while i<100:
i+ =2
i=s+i
它的基本结构属于( )
A、顺序结构 B、选择结构 C、循环结构 D、树型结构
巩固练习
2、如下Python程序段
x=1
y= 4
while y >4:
x=x*y
y+=1
运行后x的值为( )
A、1 B、4 C、8 D、20
C
A
3、如下Python程序段
x =0
while x<50:
x = (x + 2) * (x + 3)
运行后,x的值为()
A、0 B、72 C、50 D、168
巩固练习
4、如下程序段
a=2
b=1
while a >= b:
b=a * b
a=2 * a
执行后,a、b的值分别为()
A、4、2 B、16、64 C、8、8 D、2、1
B
B
5、如下Python程序段:
a =6
b=2
while al=b:
b=a//b
a=a-b
运行后,变量b的值为()
A、0 B、2 c、1 D、3
巩固练习
D
周而复始 的循环
条件循环
循环次数未知
while 关系表达式:
语句或语句组
课堂小结
import pdb #导入调试器pdb.set_trace() #设置断点
“p”查看变量的值
“c”继续运行程序
“q”结束调试
感谢观看~
Lavf59.3.100
Lavf59.3.100
$