实验五 循环结构第1关:斐波那契数列第2关:统计一段英文语句中的单词数和句子数第3关:密码判断第4关:通过数列求自然常数e第5关:双倍余额递减法计算固定资产折旧第6关:销售统计第7关:投资年限计算
第1关:斐波那契数列第2关:统计一段英文语句中的单词数和句子数第3关:密码判断第4关:通过数列求自然常数e第5关:双倍余额递减法计算固定资产折旧
·
第1关:斐波那契数列
根据提示,在右侧编辑器补充代码,输入x,输出第x个斐波那契数列。 注意:斐波那契数列的第一项和第二项为1
x=eval(input(""))
#代码开始
a=1
b=1
ans=1
for i in range(2,x):
ans=a+b
a=b
b=ans
print(ans)
#代码结束
第2关:统计一段英文语句中的单词数和句子数
本关任务:编写一个小程序,输入一段英文短语,统计其中的单词数目和句子数目。
x=input()
#代码开始
t=" "
cy=0
jz=0
for c in x:
if(c.isalpha()and((t==" " or t=="." or t=="!" or t=="?" or t=="," or t==";" or t== '"' ))):
cy=cy+1
if(c=="." or c=="!" or c=="?"):
jz=jz+1
t=c
#代码结束
print("单词{}句子{}".format(cy,jz))
第3关:密码判断
根据提示,在右侧编辑器补充代码,实现检测用户名和密码的功能。 注意:str.strip('\n')去掉字符串首尾的换行符
f1=open("sy5/密码.txt","r",encoding="utf-8")
x=input("用户名")
y=input("密码")
#代码开始
t =False
for line in f1:
line=line.strip('\n')
p=line.find(',')
if(x==line[:p]and y==line[p+1:]):
t=True
if(t):
print("密码正确")
else:
print("用户名或密码错误")
#代码结束
第4关:通过数列求自然常数e
本关任务: 编写程序,根据近似公式 e≈1+1/(1!)+1/(2!)+1/(3!)+… +1/(n!) 计算 e 的近似值,要求直至最后一项的值小于 1e-7 次方为止
s=1
#代码开始
t=1
n=1
m=1
while(t>1e-7):
t=1/n
s=s+t
m=m+1
n=n*m
#代码结束
print("e值为{:.8}".format(s))
第5关:双倍余额递减法计算固定资产折旧
本关任务:编写一个使用双倍余额递减法计算固定资产折旧的小程序。
yj=eval(input("原价"))
cz=eval(input("残值"))
n=eval(input("年限"))
#代码开始
a=2/n
q= yj*a
print("第 1年折旧%.2f"% q)
y=1
yj=yj-q
while(y<n-2):
y=y+1
q= yj*a
if(y>=10):
print("第%d年折旧%.2f"%(y,q))
else:
print("第 %d年折旧%.2f"%(y,q))
yj=yj-q
yj=yj-cz
y=y+1
if(y>=10):
print("第%d年折旧%.2f"%(y,yj/2))
else:
print("第 %d年折旧%.2f"%(y,yj/2))
y=y+1
if(y>=10):
print("第%d年折旧%.2f"%(y,yj/2))
else:
print("第 %d年折旧%.2f"%(y,yj/2))
#代码结束
第6关:销售统计
本关任务:循环输入商品编号、数量和价格,进行累加。 只到输入商品编号为0000为止。 输出商品种类、数量总计和金额总计。
spbh=input("输入商品代码")
s=0
c=0
sl=0
#代码开始
while(spbh!="0000"):
a=input("输入商品价格")
b=input("输入商品数量")
c=c+1
sl=sl+int(b)
s=s+int(a)*int(b)
spbh=input("输入商品代码")
#代码结束
print("商品种类{}数量总计{}金额总计{:.2f}".format(c,sl,s))
第7关:投资年限计算
本关任务:编写一个计算投资年限的小程序 某客户每年年初在银行存入一笔固定金额的钱m,在年底,将本金和利息取出.在第二年年初,将该笔钱与新存入的钱m一起,再存入银行。输入每年存款m、年利率r,再输入用户要得到的金额x,计算该客户需要存放多少年y才能得到需要的金额。 例如,输入存款10000,年利率0.1,金额100000,输出7 输入存款50000,年利率0.05,金额500000,输出8。
m=eval(input("存款"))
r=eval(input("年利率"))
x=eval(input("金额"))
#代码开始
ans=0
n=0
while(ans<x):
ans=(ans+m)*r+ans+m
n=n+1
#代码结束
print(n)
第8关:诗人作品统计
本关任务: 在唐诗.txt文件,如下图所示。每首诗的标题为序号诗人冒号诗名。
f1=open("sy5//唐诗.txt","r")
x=input("输入作者")
#代码开始
t =True
l=len(x)
ans=0
for line in f1:
line=line.strip('\n')
m=line[3:3+l]
if(m==x):
t=False
print(line)
ans=ans+1
if(t):
print("无作品")
else:
print("作品数 %d"%ans)
#代码结束
更多推荐
已为社区贡献1条内容
所有评论(0)