一、实验目的:
1.熟练掌握用while语句和for语句实现循环的方法。
2.熟练掌握循环的嵌套。
3.掌握在程序设计中用循环的方法实现一些常用算法。
二、实验内容:
1、1-100分之一偶数累加和。
2、1-100分之一奇数累加和。
3、1-1/2+1/3.......-1/100。
4、100以内和。
5、100之内偶数和。
6、100之内奇数和。
7、请输入一个正整数,计算偶数奇数累加和。
8、N-M能被T整除的数累加和。
9、7的阶乘。
10、四种不同方向的直角三角形。
11、打印菱形。
12、打印字母数字三角形。
13、打印九九乘法表。
14、while循环分别计算偶数、奇数、1+1/2+1/3+···、1-1/2+1/3··累加和。
15、循环嵌套选择计算向上5天向下2天的力量。
三、实验过程与结论:(经调试正确的源程序(核心部分)和程序的运行结果)
【题目】:
1、1-100分之一偶数累加和。
【源码】:
n=100sum=0for i in range(1,int(n/2)):i=i*2sum=sum+1/iprint("1-100分之一偶数累加和:{:.2f}".format(sum))
【运行结果】:
【题目】:
2、1-100分之一奇数累加和。
【源码】:
n=100sum=0for i in range(int(n/2)):i=i*2+1sum=sum+1/iprint("1-100分之一奇数累加和:{:.2f}".format(sum))
【运行结果】:
【题目】:
3、1-1/2+1/3.......-1/100。
【源码】:
n=100sum=0y=1for i in range(int(n)):i+=1sum=sum+(1/i)*yy=-1*yprint("1-1/2+1/3.......-1/100:{:.2f}".format(sum))
【运行结果】:
【题目】:
4、100以内和。
【源码】:
sum = 0n=100for i in range(int(n)):i += 1sum += iprint("100以内之和",sum)
【运行结果】:
【题目】:
5、100之内偶数和。
【源码】:
sum = 0for i in range(101):if i%2==0:sum += iprint("100之内偶数和",sum)
【运行结果】:
【题目】:
6、100之内奇数和。
【源码】:
sum = 0for i in range(100):if i%2==1:sum += iprint("100之内奇数和",sum)
【运行结果】:
【题目】:
7、请输入一个正整数,计算偶数奇数累加和。
【源码】:
n=int(input("请输入一个正整数:"))SUM_O=0SUM_J=0for i in range(1,n+1):if i%2 == 0:SUM_O += iif i%2 == 1:SUM_J += iprint("n之内偶数和:{0},n之内奇数和:{1}".format(SUM_O,SUM_J))
【运行结果】:
【题目】:
8、N-M能被T整除的数累加和。
【源码】:
N=int(input("输入正整数N:"))M=int(input("输入正整数M:"))T=int(input("输入正整数T:"))Sum = 0for i in range(N,M+1):if i%T == 0:Sum += iprint("100之内能被5整除的数累加和:",Sum)
【运行结果】:
【题目】:
9、7的阶乘。
【源码】:
N=int(input("输入正整数N:"))Sum = 1for i in range(1,N+1):Sum*=iprint("{0}的阶乘为:{1}".format(N,Sum))
【运行结果】:
【题目】:
10、四种不同方向的直角三角形。
【源码】:
for w in range(5):for y in range(w+1):print("*",end="")print("")for w in range(5):print(" "*(5-w),end="")for y in range(w+1):print("*",end="")print("")for w in range(5):for y in range(5-w):print("*",end="")print("")for w in range(5):print(" "*w,end="")for y in range(5-w):print("*",end="")print("")
【运行结果】:
【题目】:
11、打印菱形。
【源码】:
for w in range(0,5):for y in range(0,4-w):print(" ",end="")for y in range(0,w+1):print("*",end=" ")print("")for w in range(0,4):for y in range(0,w+1):print(" ",end="")for y in range(0,4-w):print("*",end=" ")print("")
【运行结果】:
【题目】:
12、打印字母数字三角形。
【源码】:
for w in range(1,10):print(" "*(15-w),end="")for y in range(1,2*w):print(chr(64+w),end="")print("")for w in range(1,10):print(" "*(15-w),end="")for y in range(1,2*w):print(chr(96+w),end="")print("")for w in range(1,10):print(" "*(15-w),end="")for y in range(1,2*w):print(chr(48+w),end="")print("")
【运行结果】:
【题目】:
13、打印九九乘法表。
【源码】:
for i in range(1,10):for j in range(1,i+1):print("{}*{}={:<3}".format(j,i,i*j),end=' ')print(' ')
【运行结果】:
【题目】:
14、while循环分别计算偶数、奇数、1+1/2+1/3+···、1-1/2+1/3··累加和。
【源码】:
#偶数Sum=0i=1while i<=100:if i%2==0:Sum+=ii+=1print("Sum=",Sum,)#奇数Sum=0i=1while i<=100:if i%2==1:Sum+=ii+=1print("Sum=",Sum,)#1+1/2+....Sum=0i=1while i<=100:Sum+=(1/i)i+=1print("Sum=",Sum,)#1-1/2+....Sum=0i=1y=1while i<=100:Sum+=(1/i)*yi+=1y*=-1print("Sum=",Sum,)
【运行结果】:
【题目】:
15、循环嵌套选择计算向上5天向下2天的力量。
【源码】:
import mathdayup,dayfactor=1.0,0.01for i in range(365):if i%5 in [4,0]:dayup=dayup*(1-dayfactor)else:dayup=dayup*(1+dayfactor)print("向上5天向下2天的力量:{:.2f}.".format(dayup))
【运行结果】: