Python实验循环结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五 循环结构(续)
【实验目的】
1.掌握range()函数的使用
2. 掌握For 语句的使用。
3.掌握循环嵌套的使用。
4.掌握一些常用的算法(求素数、穷举法、求和与乘积、递推法)。
【实验内容】 000000000
1、 填空
(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,101):
if j%3==0:
print j,
i+=1
if i%5==0: print
2、输出斐波那契级数1、1、2、
3、5、8、13……,此级数项的规律是:前两项的值各为1,从第3项起,每一项是前2项的和。(要求一行输出6项)。
(1) 当某项的数值大于或等于30000时结束。
(2) 求前100项之和。
(1)1 1 2 3 5 8 13 21 34 55 89 144
233 377 610 987 1597 2584 4181 6765 10946 17711 28657 (2 3、编写程序,输入一个数,判断该数是否为完数。例如6是一个完数,因为6=1+2+3。 x=input ("Enter an integer:") i=1 while True : x=x-i i+=1 if x==i:
print "A perfect number."
break
if x print "Not a perfect number." break 4、完成程序,使之能在窗体上显示有规律的图形。 (1) a=1 b=1 print a,b, i=2 #计数 while True: i+=1 #计数:第i 次 c=a+b a=b b=c if c>==30000: break print c, if i%6==0: print (2) a=1 b=1 sum=2 i=2 #计数 while True: i+=1 #计数:第i 次 c=a+b a=b b=c sum+=c if i==100: #完成第100次求和后退出循环 break print sum for i in range(1,10): print (format((2*i-1)*str(i),"^17")) x="*" for i in range(1,8): if i<=4: print (format((2*i-1)*x,"^7")) if i>4: 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 i<=c/2+1: print (format((2*i-1)*x,"^"+d)) if i>c/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**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/100 b=(i-100*a)/10 c=i-100*a-10*b if i==a**3+b**3+c**3: print i 6、编程实现求1—1000中所有的素数并打印,要求每行打印10个元素。c=0 for x in range(1,1000): if x==1: continue for i in range(2,x): if x%i==0: break else: print x, c+=1 if c%10==0: print 7、输入一系列数字,并求和与求平均数. 要求:(1)可以进行多次输入,并以“.“作为输入结束的标志。 (2)有容错功能,当输入非数字时,提示错误,并可以等待进行下一次的输入 (3)输入完成后可以进行求和与求平均数,并打印。 c=0 sum=0 while True: x=raw_input("Enter:") while str.isdigit(x)==False and x!=".": x=raw_input("Error.Please enter a number:") if x==".": break sum=sum+float(x) c+=1 ave=sum/c print "sum=%d"%sum,"average=%d"%ave 8、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 程序分析:采取逆向思维的方法,从后往前推断。 i=0 y=1 while True: i=i+1 y=(y+1)*2 if i==10: flag=False break print y 附加:兔子问题——古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? sum=2 m=input("Enter the month:") if m==1 or m==2: print sum else: temp=2 for i in range(3,m+1): sum=sum+2*temp temp=sum-2*temp print sum