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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acro_09

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值