Python练习题 循环语句(37—54)
Demo37
import random
computer = random.randint(0,100)
while True:
num = int(input("Enter your gusee:"))
if num == computer:
print("Yes,the number is %s"%(num))
break
if num > computer:
print("Your guess is too high")
else:
print("Your guess is too low")
Demo38
while True:
n1,n2 = eval(input("输入两个整数:"))
gcd = 1
k = min(n1,n2)
for i in range(2,k + 1):
if n1 % i == 0 and n2 % i == 0:
gcd = i
print(gcd)
Demo39
import random
numberOfHits = 0
for i in range(0,1000000):
x = random.random() * 2 - 1
y = random.random() * 2 - 1
distance = (x ** 2 + y ** 2) ** 0.5
if distance <= 1:
numberOfHits += 1
pi = 4 * numberOfHits / 1000000
print(pi)
Demo40
pos = 0
neg = 0
num = 0
sum = 0
total = 0
while True:
num = int(input("请输入一个数:"))
if num > 0:
pos += 1
elif num < 0:
neg += 1
else:
break
sum += num
total = pos + neg
agv = sum / total
print("正数的个数:",pos)
print("负数的个数:",neg)
print("总数:",total)
print("平均值:",agv)
Demo41
num = int(input("请输入一个数:"))
i = 2
while True:
if num % i == 0:
print(i,end = " ")
num /= i
else:
i += 1
if num == 1:
break
Demo42
num = int(input("请输入一个1~15之间的整数:"))
for i in range(0,num):
for j in range(num - i,0,-1):
print(" ",end="")
for j in range(-i,i+1):
print(abs(j)+1,end="")
print()
Demo43
print("模式A")
while True:
for i in range(1,7):
for j in range(1,7):
if j <= i:
print(j,end="")
print()
break
print()
print("模式B")
while True:
for i in range(6,0,-1):
for j in range(1,7):
if j <= i:
print(j,end="")
print()
break
print()
print("模式C")
while True:
for i in range(1,7):
for j in range(6,0,-1):
if j <= i:
print(j,end="")
else:
print(" ",end="")
print()
break
print()
print("模式D")
while True:
for i in range(6,0,-1):
a = 6 - i
print(" " * a,end="")
for j in range(1,7):
if j <= i:
print(j,end="")
print()
break
print()
Demo44
layer = int(input("请输入你要打印的层数:"))
for i in range(0,layer):
for j in range(layer - i,0,-1):
print(" ",end="\t")
for j in range(1,i + 1):
print(2 ** (j-1),end="\t")
for j in range(i + 1,0,-1):
print(2 ** (j-1),end="\t")
print()
Demo45
count = 0
for i in range(2,1001):
for j in range(2,i):
if i % j == 0:
break
else:
print(i,end="\t")
count += 1
if count % 8 == 0:
print()
Demo46
for i in range(10000,1000001,10000):
sum = 0
for i in range(1,i + 1):
sum += ((-1) ** (i + 1)) / (2 * i - 1)
pi = 4 * sum
print("当i等于%s时,PI等于%s"%(i,pi))
Demo47
for i in range(10000,100001,10000):
e = 1
item = 1
for i in range(1,i + 1):
item *= i
e += 1/item
print("当i等于%s时,e等于%s"%(i,e))
Demo48
for i in range(1,10001):
sum = 0
for j in range(1,i):
if i % j == 0:
sum += j
if i == sum:
print(i)
Demo49
import random
user_sum = 0
com_sum = 0
while True:
com = random.randint(0,2)
user = int(input("请输入石头(0),剪刀(1),布(2)所对应的数字:"))
if user - com == -1 or user - com == 2:
user_sum += 1
if user_sum == 2:
print("玩家赢了")
break
elif user - com == -2 or user - com == 1:
com_sum += 1
if com_sum == 2:
print("电脑赢了")
break
else:
print("平局")
Demo50
max = 0
count = 0
while True:
num = int(input("Enter a number (0: for end of input): "))
if num == 0:
break
if num > max:
max = num
count = 1
elif num == max:
count += 1
print("The largest number is ",max)
print("The occurrence count of the largest number is ",count)
Demo51
# 方法一:
Dec = int(input("请输入一个十进制数:"))
print(bin(Dec))
# 方法二:
a = int(input("请输入一个十进制整数:"))
print("{}对应二进制为{:b},八进制为{:o},"
"十六进制为{:x}".format(a,a,a,a))
#方法三:
number = int(input("Enter a number:"))
binStr = ""
while number != 0:
a = number % 2
binStr = str(a) + binStr
number //= 2
print(binStr)
Demo52
# 方法一:
Dec = int(input("请输入一个十进制数:"))
print(hex(Dec))
# 方法二:
a = int(input("请输入一个十进制整数:"))
print("{}对应二进制为{:b},八进制为{:o},"
"十六进制为{:x}".format(a,a,a,a))
# 方法三:
number = int(input("Enter a number:"))
hexStr = ""
while number != 0:
a = number % 16
if a < 10:
hexStr = str(a) + hexStr
else:
hexStr = chr(87 + a) + hexStr
number //= 16
print(hexStr)
Demo53
import random
count = 0
total = 1000000
for i in range(1,1000001):
x = random.random() * 2 - 1
y = random.random() * 2 - 1
if -1 <= x <= 0 and -1 <= y <= 1:
count += 1
elif 0 <= x <= 1 and 0 <= y <= 1 and y / (1 - x) <= 1:
count += 1
print("概率为%.12f"%(count/total))
Demo54
count = 0
for y in range(2001, 2100 + 1):
if y % 400 == 0 or y % 4 == 0 and y % 100 != 0:
print(y, end=" ")
count += 1
if count % 10 == 0:
print()
shandongwill: 优质好文,博主的文章细节很到位,兼顾实用性和可操作性,感谢博主的分享,三连支持 欢迎来我的博客指导
征途黯然.: This 五Redis之发布订阅及事务管理 article is very inspiring, and I've learned a lot of new things.
征途黯然.: This 五MySQL的备份及恢复 article is truly great and very insightful.
ynkmlr111: 可以,收藏