1、实验五 循环结构(续)【实验目的】 1掌握 range()函数的使用2. 掌握 For语句的使用。3掌握循环嵌套的使用。4掌握一些常用的算法(求素数、穷举法、求和与乘积、递推法)。【实验内容】 0000000001、 填空(1) 在命令行中显示 1 到 10的数字 range(1,11) 。(2) 在命令行中显示 1 到 10的所有偶数 range(2,11,2) 。(3) 显示所有的大写字符。for i in range(65,91) :print chr(i) (4) 显示 1-100能被 3整除的数,并且每 5个数打印一行。i=0 记录能被 3整除的个数for j in range(1,
2、101):if j%3=0:print j,i+=1if i%5=0:print2、输出斐波那契级数 1、1、2、3、5、8、13,此级数项的规律是:前两项的值各为 1,从第 3项起,每一项是前 2项的和。(要求一行输出 6项)。(1) 当某项的数值大于或等于 30000时结束。(2) 求前 100项之和。(1)1 1 2 3 5 813 21 34 55 89 144233 377 610 987 1597 25844181 6765 10946 17711 28657(2)927372692193078999175(1)a=1b=1print a,b,i=2 #计数while True:i
3、+=1 #计数:第 i 次c=a+ba=bb=cif c=30000:breakprint c,if i%6=0:print(2)a=1b=1sum=2i=2 #计数while True:i+=1 #计数:第 i 次c=a+ba=bb=csum+=cif i=100: #完成第 100 次求和后退出循环breakprint sum3、编写程序,输入一个数,判断该数是否为完数。例如 6是一个完数,因为 6=1+2+3。x=input(“Enter an integer:“)i=1while True:x=x-ii+=1if x=i:print “A perfect number.“breakif
4、 x4:print (format(15-2*i)*x,“7“)*号题变式:x=raw_input(“Enter a character:“)c=input(“Enter the linage(an odd number):“)d=str(c+1)for i in range(1,c+1):if ic/2+1:print (format(2*c+1-2*i)*x,“+d)5、 编写程序,显示所有的水仙花数。(难点,嵌套循环)(1)最优法:for i in range(100,1000):c=i%10 #个位数b=i/10%10 #十位数a=i/10/10 #百位数if i=a*3+b*3+c*
5、3:print i(2)for i in range(1,10):for j in range(0,10):for k in range(0,10):if 100*i+10*j+k=i*3+j*3+k*3:print i*3+j*3+k*3(3)for i in range(100,1000):a=i/100b=(i-100*a)/10c=i-100*a-10*bif i=a*3+b*3+c*3:print i6、编程实现求 11000中所有的素数并打印,要求每行打印 10个元素。c=0for x in range(1,1000):if x=1:continuefor i in range(2
6、,x):if x%i=0:breakelse:print x,c+=1if c%10=0:print7、输入一系列数字,并求和与求平均数.要求:(1)可以进行多次输入,并以“.“作为输入结束的标志。(2)有容错功能,当输入非数字时,提示错误,并可以等待进行下一次的输入(3)输入完成后可以进行求和与求平均数,并打印。c=0sum=0while True:x=raw_input(“Enter:“)while str.isdigit(x)=False and x!=“.“:x=raw_input(“Error.Please enter a number:“)if x=“.“:breaksum=sum
7、+float(x)c+=1ave=sum/cprint “sum=%d“%sum,“average=%d“%ave8、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第 10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维的方法,从后往前推断。i=0y=1while True:i=i+1y=(y+1)*2if i=10:flag=Falsebreakprint y附加:兔子问题 古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?sum=2m=input(“Enter the month:“)if m=1 or m=2:print sumelse:temp=2for i in range(3,m+1):sum=sum+2*temptemp=sum-2*tempprint sum