最新消息:

教学案例:数值累加模板及应用

Python 少儿编程 1640浏览 0评论

数值累加模板及应用

1【引入】《道德经》:“九层高台,起于累土。” 累:积累,叠加。加:增加。累加:在原有基础上添加。我们讲累加是指批量数据做加法运算并计算结果。

2【问题】 编程实现计算s=1+2+3。 对于这个问题我们可以按如下分步运算。(下表左边部分)

教学案例:数值累加模板及应用经过以上4条步(也可以看做是程序中的赋值语句),计算出s的结果。

3【扩展】如果计算s=1+2+3+…+n呢,也可以分步完成(如上表右边),这样虽然问题解决了,但是数学上逐个表达式去运算,过程会感到很头痛。写成Python语句的话,也是很头痛的。其实上述赋值语句中,蓝色部分是一样的,只是每次的加数不一样。能不能让像提取公因数一样来提取语句中的公共部分,然后加上差异的部分来改写代码呢?如下图。

教学案例:数值累加模板及应用

上述的n条语句可以简化为一条语句s=s+x ,其中x在[1,n]之间逐一枚举。要实现[1,n]之间变化,可以使用循环语句for实现。因此计算s=1+2+3+…+n的代码可以如下:

教学案例:数值累加模板及应用

4【小结】通过分析可以写出累加功能的通用模板。

教学案例:数值累加模板及应用

在该模板中,枚举的范围[1,n]是确定,关键是程序中变量x如何表达。x是做累加的每一个数据,一般可以用Python表达式描述,否则就不能用该模板。

5【python方法】累加问题,python中可以实现sum()方法。

教学案例:数值累加模板及应用

参数说明:

 iterable — 可迭代对象,如:列表、元组、集合。 start — 指定相加的参数,如果没有设置这个值,默认为0。 返回值 计算结果。

6【思考】若让学生编程实现s=1+2+3…+n的问题时,有学生提出用数学公式直接计算,您会怎么回应?

7【应用举例】①.编程实现计算s=1+1/2+1/3+…1/n 的值 【分析】:本问题n个数相加的问题,即累加问题,可以应用累加语句模板,计算范围是[1,n],变量x=1/n。因此该问题可以写成如下代码:

教学案例:数值累加模板及应用

【python方法】 s=sum([k for k in range(1,n+1)]) ([k for k in range(1,n+1)]列表生成式,该表达式生成列表[1,2,3,..,n]) ②.编程实现s=1+3+5+…+n (n<=10000的奇数) 【分析】:本问题n个数相加的问题,即累加问题,可以应用累加语句模板,计算范围是[1,n],变量x是范围中的奇数。因此该问题可以写成如下代码:

教学案例:数值累加模板及应用

【python方法】 s=sum([k for k in range(1,n+1,2)]) (注释 x=i, s+=x两条语句可以合并为一条s+=i,即x=i) 8【练习】①.编程实现s=1+(1+2)+(1+2+3)+…+(1+2+3…+n) (n<=10000) ②.编程实现s=1-2+3-4+…+n(n<=10000) ③.编程实现100以内能被3整除的和

您必须 登录 才能发表评论!