(共14张PPT)
0、复习
for 循环变量 in range(初值,终值,步长) :
语句组
for i in range(1,11,1):
print(i)
代码
如果想计算并输出第五天存钱后,存钱罐一共有多少钱?应怎么用代码实现呢?
小智想买手写板便于绘画,于是按照如下方式进行存钱:
第1天存1元钱,
第2天存2元钱,
第3天存3元钱,
……
第5天存5元钱。
请打印输出每次放入存钱罐的钱数。
算法描述:
(1)为钱数定义名字:i
(2)每天放入存钱罐的钱数变化
1 2 3 4 5
(3)确定循环变量对应的序列:
range(1,6,1)
(4)确定循环语句组:
print(i)
4.4.1 for循环的应用(存钱贷款)
天数 S 钱数i
5
4
3
2
1
一、循环变量的应用1+2+3+4+5
s=0
s=0+1
s=1+2
s=3+3
s=6+4
s=10+5
1
2
3
4
5
i
+
s(上)
=
s
小智想买手写板便于绘画,于是按照如下方式进行存钱:
第1天存1元钱,
第2天存2元钱,
……
第5天存5元钱。
请计算并输出存钱罐一共有多少钱?
算法描述:
(1)数学计算式:
(2)s代表什么?
(3)1 2 3 4 5代表什么?
(4)变量有哪些?谁是循环变量?
(5)循环变量对应的序列:
(6)循环语句组:
s=1+2+3+4+5
存钱罐里钱的总数
每天存的钱
总钱数s 每天存的钱i
range(1,6,1)
s=s+i
一、循环变量的应用1+2+3+4+5
小智想买手写板便于绘画,于是按照如下方式进行存钱:
第1天存1元钱,
第2天存2元钱,
……
第5天存5元钱。
请计算并输出存钱罐一共有多少钱?
算法描述:
(1)数学计算式:
(2)s代表什么?
(3)1 2 3 4 5代表什么?
(4)变量有哪些?谁是循环变量?
(5)循环变量对应的序列:
(6)循环语句组:
s=1+2+3+4+5
存钱罐里钱的总数
每天存的钱
总钱数s 每天存的钱i
range(1,6,1)
s=s+i
s = 0
for i in range(1,6,1):
s = s+i
print(s)
代码
for 循环变量 in range(初值,终值,步长) :
语句组
二、累加1+2+3+..+n
小智想买手写板便于绘画,于是按照如下方式进行存钱:
第1天存1元钱,
第2天存2元钱,
……
最后一天存n元钱。
请计算并输出存钱罐一共有多少钱?
算法描述:
(1)数学计算式:
(2)s代表什么?
(3)1 2 3…n代表什么?
(4)从键盘输入n:
(5)确定序列:
range(1,n+1,1)
(6)循环语句组:
s=s+i
s=1+2+3+…+n
存钱罐里钱的总数
每天存的钱
s = 0
for i in range(1,6,1):
s = s+i
print(s)
n=int(input())
s = 0
for i in range(1,n+1,1):
s = s+i
print(s)
变量=input()
整型变量=int(input())
三、实践操作——银行贷款
s=1000
sum=0
for i in range(1,13,1):
sum = s+s*0.5%*i
print(s)
代码
通过计算,小智发现30天后存钱金额较少,不能买到心仪的绘画板,于是想进行贷款,网上有以下几项贷款方法:
1.如果在银行贷款,则贷款要求如下:假设小王在去年12月1日贷款1000元,贷款月利率0.5%,每月还款金额为:
1月还款:1005=1000+1000*0.5%
2月还款:1010=1005+1000*0.5%=1000+1000*0.5%*2
3月还款:1015=1010+1000*0.5%=1000+1000*0.5%*3
…
请问今年12月份共需还款多少钱?
算法描述:
(1)还钱总数:sum 本金:s
(2)还款月份:i
(3)确定序列:
range(1,13,1)
(5)确定循环语句组:
sum=s+s*0.5%*i
三、实践操作——民间合法贷款
s=1000
sum=0
for i in range(1,13,1):
sum = s+s*2%*i
print(s)
代码
通过计算,小智发现30天后存钱金额较少,于是想进行贷款,网上有以下几项贷款方法:
2.如果不在银行贷款,则民间合法的贷款要求如下:假设小王在去年12月1日贷款1000元,贷款月利率2%,每月还款金额为:
1月还款:1020=1000+1000*2%
2月还款:1040=1020+1000*2%=1000+1000*2%*2
3月还款:1060=1040+1000*2%=1000+1000*2%*3
…
请问今年12月份共需还款多少钱?
算法描述:
(1)还钱总数:sum 本金:s
(2)还款月份:i
(3)确定序列:
range(1,13,1)
(5)确定循环语句组:
sum=s+s*2%*i
三、实践操作——校园贷、网络贷
sum=1000
for i in range(1,13,1):
sum = sum*1.1
print(s)
代码
通过计算,小智发现30天后存钱金额较少,于是想进行贷款,网上有以下几项贷款方法:
3.通常说校园贷、网络贷等不合法的贷款要求如下:假设小王在去年12月1日贷款1000元,贷款月利率10%,每月还款金额为:
1月还款:1100=1000+1000*10%=1000*1.1
2月还款:1210=1100+1100*10%=1100*1.1
3月还款:1331=1210+1210*10%=1210*1.1
…
请问今年12月份共需还款多少钱?
算法描述:
(1)还钱总数:sum
(2)还款月份:i
(3)确定序列:
range(1,13,1)
(5)确定循环语句组:
sum=sum*1.1
请修改上述代码,实现从键盘输入贷款本金s、还款月数n,计算并输出n个月后需还款的总金额。按照月利率10%,利滚利的方式还款。
从键盘输入整数n,计算并输出1~n(包括1和n)之间所有自然数的积:
即:1*2*3*4*…*n
1.为存放自然数积的变量s赋初值:
s=1
2.确定序列:
range(1,n+1,1)
3.确定循环语句组:
s = s*i
4.循环结束后输出结果s
四、1~n累加 1~n累乘
n=int(input())
s = 0
for i in range(1,n+1,1):
s = s+i
print(s)
从键盘输入整数n,计算并输出1~n(包括1和n)之间所有自然数的和:
即:1+2+3+4+…+n
1.为存放自然数和的变量s赋初值:
s=0
2.确定序列:
range(1,n+1,1)
3.确定循环语句组:
s = s+i
4.循环结束后输出结果s
n=int(input())
s = 1
for i in range(1,n+1,1):
s = s*i
print(s)
为什么累加时,s的初值为0?
不改变累加的结果
0+1+2+..+n=1+2+…+n
累乘时,s的初值为多少才不改变累乘的结果?
1
1*1*2*…*n=1*2*…*n
五、课堂小结
n=int(input())
s = 0
for i in range(1,n+1,1):
s = s+i
print(s)
n=int(input())
s = 1
for i in range(1,n+1,1):
s = s*i
print(s)
累加
累乘
1+2+3+…n
0+1+2+3+…+n
1*2*3*…*n
1*1*2*3*…*n
1.下列代码的运行结果是( )
A.120 5 B.120 4
C.24 4 D.24 5
六、课堂练习
C
s=1
for i in range(1,5):
s=s*i
print(s,i)
i s=s*i
1
2
3
4
1
2
6
24
2.如果从键盘输入整数9,流程图的输出结果是( )
A.16 9 B.25 9
C.16 7 D.25 7
六、课堂练习
A
i=i+2 i1
3
5
7
9
1
4
9
16
是
是
是
是
否
3.小明想编写程序实现以下功能:输入正整数n,并计算1到n的累加值,即1+2+…+n。程序流程图如下图所示。
六、课堂练习
开始
i=1
①
i=i+1
②
i<=n
输出 s
结束
是
否
输入正整数n
③
①
for i in ④ :
②
print('the result:',s)
(1)请根据题意,选择恰当的选项,补全流程图的① 和② 处。
A.s=0 B.s=1 C.s==0 D.s==1
E.s=s+i F.s==s+i G.s=s*i H.s==s*i
(2)结合流程图,代码段③处应填写 ;代码段④处应填写 (提示:使用range( )函数)
(3)若输入的正整数n是10,请问最后s的值是 。
thanks