3.7.3 必修1 项目七 循环结构的算法构建 学案3

一、数值数据及其运算:
数值数据分为整数(int)和浮点数(float)。浮点数是带小数的数值。如1是整数,1.0是浮点数。两种数据的在存储方式是不同的。
常用的算术运算符有:
*
1.
循环结构的算法构建:
要构建一个循环结构,需要解决两个问题:一是重复要做的是什么事,二是如何控制循环。
实现循环控制有三个要素:
1、循环控制变量的初值;(求累乘的初值通常为1,求累加的初值通常为0)
2、循环控制变量的终值;
3、在循环体中设置控制变量由初值向终值变化的语句。(n=n+1)


例1.求50!
分析问题:计算机算法和处理是将1,2,3...累乘到一个变量中,累乘变量的初值为1.
设计算法




练习1.在累加与累乘的程序设计中,下列说法错误的是(      )

A.求累加时,累加变量初始值赋值为0
B.求累积时,累积变量初始值赋值为1
C.求累加和累积时,初始变量赋值为1
*
2.
实现循环结构的语句:
循环可以分为确定次数循环和不确定次数循环。
1)、确定次数循环:对循环次数有明确的定义,循环次数采用遍历结构中元素的个体来体现。python中通过for语句来实现确定次数循环。
       for  <循环控制变量> in <遍历结构>:
             <语句块>
for语句简化了循环控制变量计数的过程,每一次循环变量依次取集合中的一个值。
遍历结构可以是range函数产生的序列,组合数据对象(列表、字符串等)或文件对象。


range(start,stop[,step]) 其含义产生一个整数序列,从start开始,到小于stop的最大整数结束,步长为step,step为1时可省略。range(100,106)产生序列为[100,101,102,103,104,105].start省略时表示从0开始,range(5)相当于range(0,5).

练习:
用for语句实现求50!的程序如下:请问正确的循环控制语句有(    )
s=1
(                          ):
       s=s*i
print(s)
【多选题】
A. for i in range(1,51,1)
B. for i in range(1,51)
C. for i in range(1,50)
D. for i in range(51)
*
3.
如果要将1-50之间所有的奇数累加,则控制循环变量的语句可以是(    )
s=0
(                              ):
       s=s+i
print(s)
A. for i in range(1,50,1)
B. for i in range(1,50)
C. for i in range(50,2)
D. for i in range(1,50,2)
*
4.
不确定次数循环:
不确定次数循环会一直保持循环操作,直到特定循环条件不被满足时才结束、不需要提前知道循环次数。python中用while语句来实现不确定次数循环。
       while  <条件> :
                <语句块>
例2.输入一个任意正整数,求它的逆序数。
1)、分析问题:求一个正整数的逆序数的方法,是每次取该数的最后一位,构造出一个新的整数。
例如:求726的逆序数的过程如下:

构造循环控制时,可以将表示输入数的变量作为循环控制变量。输入初始值后,每次整除10,直到该数为0 ,循环结束。重复操作的数是将原数最后一位取下,通过位权值构造到新的逆数中。
2)、设计算法:

3)、用while语句实现逆序数的程序设计:

巩固知识:将上述求逆序数程序输入到python环境中运行并验证。当输入的正整数是n位数时,while(num)循环控制的循环体中执行了n次循环。优化上述程序,当输入任意一个正整数时,要求依次显示截取逆序数的过程和循环次数。

num=int(input("请输入一个正整数:"))
i=0
reverseNum=0                                                       
while(num):                                                           
     reverseNum=reverseNum*10+num%10              
     num=num//10                                                  
     i=i+1
    (                                                )    #要求依次显示截取逆序数的过程及循环次数
print("它的逆序数是:",reverseNum)
*
5.
编写用while实现求解50!的程序
*
6.
关系运算符与逻辑运算符:

python语言使用“=”表示赋值语句,使用“==”表示等于,python还支持连续比较。例如,判断一个数f是否为100到105之间的一个数,其条件表示为:100<=f<=105.
逻辑运算符包含与运算(and),或运算 (or),非运算(not),三种运算的先后运算顺序是先not,再and,最后or.但可以使用括号优先来调整运算的先后顺序。

上述程序中100<=x<=105等同于(    )
A.100<=f and f<=105
B.100<=f or f<=105
*
7.
实现选择结构的语句有三种基本形式:

练习编程1:单分支语句应用
从键盘上输入任意一个带符号的整型数(int)赋值到变量x中,并按格式|x|=输出绝对值。
*
8.
补全程序并验证程序:(双分支语句应用)
编写一个让小学生练习100以内正整数减法的程序。

循环出题程序:
*
9.
编写程序,输入身高和体重,计算身体的质量指数bmi值,并给出健康信息。
bmi=体重/(身高X身高)
bmi<18.5:     bmi指标为:偏瘦
bmi<25:        bmi指标为:正常
bmi<30:        bmi指标为:偏胖
bmi>30         bmi指标为:肥胖

1)多分支语句实现编程:

2)利用单分支语句也可实现上例中的多分支结构

对比两种执行过程,当计算出的值为18时,对方法一,进入第一个分支,输出结果后,程序执行结束。对方法二,第一条件满足输出结果后,还要继续依次执行后三条语句。对比上述两种方法,效率更高的是(      )
A.方法一 多分支语句
B.方法二 单分支语句
*
10.
 eval函数应用:
eval函数的作用是将字符参数转化为有效的表达式,并将表达式值返回计算结果。
如:eval("2*3+5") 其功能是将字符串“2*3+5” 转化为算术表达式,并求值返回结果为11.
n=eval(input("请输入表达式“)其功能是将键盘上输入获取和表达式的值赋给n.
巩固练习:执行下面程序
a=eval(input("a="))
b=eval(input("b="))
c=a+b
print(a,b,c)
运行程序时,当显示a=时输入2*3,当显示b=时输入6-3,则输出结果是(    )
A. 3 6 9
B. 6 3 9
C. 9 6 3
D. 3 9 6
问卷星提供技术支持
举报