当前位置:文档之家› Python实验循环结构

Python实验循环结构

实验五 循环结构(续)
【实验目的】
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<i:
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。

相关主题