内容正文:
设计简单数值数据算法
--循环结构
游戏导入
猜数字游戏:
规则:老师事先在纸上写一个1-100之间的整数,大家来猜。每次猜完,老师会提示大了还是小了。你们不断猜测,直到猜对,猜对了有礼品。
这个游戏其实是一个不断猜测的过程,就是一个循环。只要没猜对(循环条件),就重复猜数字的动作(循环体)
一、循环结构的算法构建
构建循环结构
要素
变量的初值
变量的终值
重复
分析问题
变化的语句
思考:1、上边的式子有怎样的规律呢?
3、怎么用流程图表示呢?
s = s + i
i=i + 1
2、i有什么作用?S呢?
通项公式:S=S + i
问题1: 设计一算法,求和:1+2+3+4+5。
1.令S=0
2.S=S+ 1
3.S=S + 2
4.S=S + 3
5.S=S + 4
6.S=S + 5
这是一个有规律的数据项连续相加的问题 --累加问题。
计算机处理累加问题就是逐项相加。
1.令S=0
2.令i=1
3.循环当i小于等于5:
3.1 s=s+i;
3.2 i=i+1.
开始
s=0,i=1
i=i+1
s=s+i
输出s
结束
否
是
i≤5
用for语句实现循环
for 变量 in range ( start,stop,step)
s=0
for i in range(1,6);
s=s+i
i=i+1
print(s)
求和:1+2+3+4+5。
1.令S=0
2.令i=1
3.循环当i小于等于5:
3.1 s=s+i;
3.2 i=i+1.
问题2:求5的阶乘
5!=1*2*3*4*5,和累加问题类似,计算机算法的处理是逐项将1、2、3、4、5累乘到一个变量中。
算法二
1.令s=1;
2.令i=1;
3.循环当i小于等于5;
3.1 s=s*i;
3.2 i=i+1.
算法一
1. 令s=1;
2. s=s*1;
3. s=s*2;
4. s=s*3;
5. s=s*4;
6. s=s*5.
开始
s=0,i=1
i=i+1
s=s+i
输出s
结束
否
是
i≤5
5
s=0
for i in range(1,6);
s=s+i
print(s)
s = 1
for i inrange(1,6):
s = s*i
print(s)
二、实现循环结构的语句
1.确定次数循环
Python语言中通过for语句来实现确定次数循环。
for <循环控制变量> in <遍历结构>:
<语句块>
s = 1
for i inrange(1,6):
s = s*i
print(s)
s = 0
for i inrange(1,6):
s = s+i
print(s)
例题:求1~50(包含50)之间所有的偶数之和。
s=0
for i in range(2,51,2):
s=s+i
print(s)
2.不确定次数循环
Python语言中通过while语句来实现不确定次数循环:
while<条件>:
<语句块>
for i in range(1,6):
while i<6:
password=""
while password!="123456":
password=input("请输入密码:")
print("密码正确,登录成功")
例:用户输入密码验证。
while语句也可以用于完成确定次数循环,请用它实现求解5!。
s=1
i=1
while i<=5:
s=s*i
i=i+1
print(s)
s = 1
for i inrange(1,6):
s = s*i
print(s)
三、课堂练习
1.python提供了2种循环结构语句,它们是( )
A.for和while语句 B.for和if语句 C.if和else语句 D.print和input语句
A
2.关于下列Python程序段的说法正确的是( )
for i in range(0,10,2):
print(i)
A.程序循环的次数是5次 B.程序循环的次数是10次
C.程序的运行结果是:0 2 4 6 8 D.程序的运行结果是:0 2 4 6 8 10
A
3.如图所示的Python代码,运行时循环执行的次数是( )
menu=["青椒炒鸡蛋","土豆炖牛肉","芹菜炒肉丝","冬瓜炒虾仁"]
for i in menu:
print(i)
A.2 B.4 C.1 D.3
4.在Python中,运行以下代码后,输出“*”符号的个数是( )
i = 1
while i < 5:
print("*")
i=i+2
A.2 B.3 C.4 D.1
B
A
三、课堂小结
$$