三.循环语句练习题
demo.01
代码:
import random
t=random.randint(0,99)
print("随机值为",t)
num=int(input("请输入你要猜的(0—100)的数:"))
while True:
if num>t :
print("你猜的数太大了")
num=int(input("请再一次输入:"))
elif num==t:
print("恭喜你猜对了")
break
else :
print("你猜的数太小了")
num=int(input("请再一次输入:"))
运行结果:
demo.02
代码:
(a,b)=eval(input("请输入a和b的值:"))
gcd=1
i=1
while i<=a:
if a%i==0 and b%i==0 :
gcd=i
i+=1
print("最大公约数为",gcd)
运行结果:
demo.03
代码:
import random
num=0
for i in range(1,1000001):
x = random.random()*2-1
y = random.random()*2-1
d=(x**2+y**2)**0.5
if d<=1 :
num+=1
pi = 4 * num / 1000000
print(pi)
运行结果:
demo.04
代码:
num1=0
num2=0
sum=0
while True:
num=int(input("请输入一个整数:"))
if num>0 :
num1+=1
sum+=num
elif num==0 :
break
else :
num2+=1
sum+=num
ave=sum/(num1+num2)
print("正数有%s个"% num1)
print("负数有%s个"% num2)
print("总数为",sum)
print("平均数为%s"% ave)
运行结果:
demo.05
代码:
i=2
n=int(input("请输入一个整数:"))
while True:
if n%i==0 :
print(i,end=",")
n/=i
else :
i+=1
if n==1:
break
运行结果:
demo.06
代码:
n = int(input("请输入要打印的行数:"))
i = 1
while i<=n:
blank=n-i
for j in range(0,blank):
print(" ",end=" ")
for j in range(i,0,-1):
print(j,end=" ")
for j in range(2,i+1,1):
print(j,end=" ")
print()
i+=1
运行结果:
demo.07
代码:
n = int(input("请输入要打印的行数:"))
i = 1
while i<=n:
for j in range(1,i+1,1):
print(j,end=" ")
print()
i+=1
n = int(input("请输入要打印的行数:"))
i = 1
while i<=n:
for j in range(1,n-i+2,1):
print(j,end=" ")
print()
i+=1
n = int(input("请输入要打印的行数:"))
i = 1
while i<=n:
blank=n-i
for j in range(0,blank):
print(" ",end=" ")
for j in range(i,0,-1):
print(j,end=" ")
print()
i+=1
n = int(input("请输入要打印的行数:"))
i = 1
while i<=n:
blank=i-1
for j in range(0,blank):
print(" ",end=" ")
for j in range(1,n-i+2):
print(j,end=" ")
print()
i+=1
运行结果:
demo.08
代码:
n = int(input("请输入要打印的行数:"))
i=1
while i<=n:
blank=n-i
for j in range(0,blank):
print(" ",end=" ")
for j in range(0,i):
print(2**j,end=" ")
for j in range(i-2,-1,-1):
print(2**j,end=" ")
print()
i+=1
运行结果:
demo.09
代码:
count=0
for i in range(2,1001):
for j in range(2,i):
if i%j==0:
break
else :
count+=1
print(i,end="\t")
if count%8==0:
print()
运行结果:
demo.10
代码:
k = -1
i=1
sum=0
I = int(input("请输入I的值:"))
while i<=I :
k*=-1
sum+=(1*k)/i
i+=2
print(4*sum)
运行结果:
demo.11
代码:
i=1
t=1
sum=1
I = int(input("请输入I的值:"))
while i<=I:
t*=i
sum+=1/t
i+=1
print(sum)
运行结果:
demo.12
代码:
for i in range(1,10000):
sum=0
for j in range(1,i):
if i%j==0:
sum+=j
if sum==i:
print(i)
运行结果:
demo.13
代码:
import random
count1=0
count2=0
while True:
t=random.randint(0,2)
num=int(input("请输入你的选择(0代表石头,1代表剪刀,2代表布):"))
if (t==0 and num==1) or (t==1 and num==2) or (t==2 and num==0):
count1+=1
elif (t==0 and num==2) or (t==1 and num==0) or (t==2 and num==1):
count2+=1
if count1==2 or count2==2:
break
if count1==2:
print("计算机赢了")
elif count2==2:
print("你赢了")
运行结果:
demo.14
代码:
count=0
max=0
while True:
num = int(input("请输入数字:"))
if num>max:
max=num
count=1
elif num==max:
count+=1
if num==0:
break
print("最大的数为:",max)
print("最大的数出现了%d次" % count)
运行结果:
demo.15
代码:
ab=""
n = int(input("请输入一个十进制的整数:"))
print("十进制数{}对应的二进制数为{:b}" .format(n,n))
while n!=0:
a=n%2
ab=str(a)+ab
n=n//2
print(ab)
运行结果:
demo.16
代码:
demo.17
代码:
i=2001
count=0
while i<=2100:
if(i%4==0 and i%100!=0 or i%400==0):
count+=1
print(i,end=' ')
if count%10==0:
print()
i+=1
运行结果: