循环语句练习题

本文介绍了多个Python编程练习,包括猜数字游戏、计算两个数的最大公约数、使用蒙特卡洛方法估算π、统计正负数及平均值、寻找最小因子、构建金字塔和不同模式的三角形、打印2到1000的素数、近似π的计算、计算e的值、完全数判断、石头剪刀布游戏、查找最大数及其出现次数、十进制转2进制和16进制,展示了Python在算法和数学计算中的应用。
摘要由CSDN通过智能技术生成

1.猜数字

import random
c = "y"
while c == "y" or c == "Y":
		a = random.randrange(0,101)
		b = int(input("请输入你猜的数字:"))
		while b != a:
			if b < a:
				b = int(input("格局小了,请重新猜:"))
			if b > a:
				b = int(input("太大了,请重新猜:"))
		else:
			print("公洗你,猜对辣!")
			c = input("还丸吗?Y/N")
else:
	pass

运行结果

2.最大公约数

a = int(input("请输入第一个数字"))
b = int(input("请输入第二个数字"))
if a < b:
	max = b
else:
	max = a
c = 1
while c in range(0,max + 1):
	if a % c == 0 and b % c == 0:
		abmax = c
	c = c + 1
print(abmax)

运行结果

 3.蒙特卡随机数表示π

import random
ci = 0
a = 0
while a in range(0,1000000):
	x = random.random()*2-1
	y = random.random()*2-1
	x1 = 0
	y1 = 0
	a = a + 1
	L = ((x - x1) * (x - x1) + (y - y1) * (y - y1)) ** 0.5
	if L <= 1:
		ci = ci + 1
	else:
		pass
pai =  (ci * 4) / 1000000
print(pai)

运行结果

4.统计正数,负数,总和,平均值

a = 1
fu = 0
zheng = 0
zong = 0
shu = 0 
while a != 0:
	shu = shu + 1
	a = int(input("请输入数字,输入0为停止"))
	a1 = a
	if a1 < 0:
		fu = fu + 1
	if a1 > 0:
		zheng = zheng + 1
	zong = zong + a1
	ping = zong / shu
print("正数的个数为%s"%(zheng))
print("负数的个数为%s"%(fu))
print("总和为%s"%(zong))
print("平均数为%.3f"%(ping))

运行结果

 5.最小因子

a = int(input("请输入一个整数"))
b = 2
while a != 1:
	if a % b == 0:
		a = a / b
		print("%s   "%(b),end = "")
	else:
		b = b + 1

运行结果

6.金字塔

a = int(input("请输入行数:"))
for i in range(1, a + 1):
	print()
	kong = a - i
	for j in range(0,kong):
		print(" ",end = "  ")
	for j in range(1,i+1):
		c =2**(j-1)
		print(c,end	= "  ")
	for j in range(i -1,0,-1):
		c =2**(j-1)
		print(c,end	= "  ")
print()

运行结果

7.4种模式的三角形

a = int(input("请输入行数:"))
for i in range(1, a + 1):
	print()
	for j in range(1,i+1):
		print(j,end	= "")
print()

for i in range(a, 0,-1):
	print()
	for j in range(1,i+1):
		print(j,end	= "")
print()

for i in range(1,a+1):
	k = a - i
	print()
	for j in range(0,k):
		print(" ",end ="")
	for j in range(i,0,-1):
		print(j,end= "")
print()

for i in range(a,0,-1):
	print()
	kong = a - i
	for j in range(0,kong):
		print(" ",end = "")
	for j in range(1,i+1):
		print(j,end= "")
print()

运行结果

8显示2到1000的素数,每行显示8个

d = 1
for a in range(2,1001):
	c = 0
	for b in range(2,a):
		if a % b == 0:
			c = c + 1
		else:
			b = b + 1
	if c == 0:
		print("%s  "%a,end = "")
		d = d + 1
		if d % 8 == 0:
			print()

运行结果

9近似计算π

for a in range(10000,100001,10000):
	pai = 0
	for c in range(1,a+1):
		pai = pai + 4 * ((-1) ** (c + 1) / (2 * c - 1))
	print("%.5f"%pai)

运行结果

10.计算e

for i in range(10000,110000,10000):
	e = 1
	a = 1
	for c in range(1,i+1):
		a *=  c
		e += 1 / (a)
	print(e)

运行结果

11.完全数

for a in range (1,10001):
	c = 0
	for b in range(1,a):	
		if a % b == 0:
			c += b
	if c == a :
		print(c)

运行结果

12.石头剪刀布输赢2次结束

import random
x = 0
y = 0
while x != 2 and y != 2:
	b = int(input("请输入你要出的,剪刀(0),石头(1),布(2)"))
	a = random.randint(0,2)
	if a == 0:
		print("电脑出的剪刀")
		if b == 0:
			print("平局")
		if b == 1:
			print("你赢了")
			x = x + 1
		else:
			print("你输了")
			y = y + 1
	if a == 1:
		print("电脑出的石头")
		if b == 0:
			print("你输了")
			y = y + 1
		if b == 1:
			print("平局")
		else:
			print("你赢了")
			x = x + 1
	if a == 2:
		print("电脑出的布")
		if b == 0:
			print("你赢了")
			x = x + 1
		if b == 1:
			print("你输了")
			y = y + 1
		else:
			print("平局")	

运行结果 

13.最大数的出现

a = 1
max = 0
while a != 0:
	a = int(input("请输入数字,输入0为停止"))
	a1 = a
	if a1 > max:
		max = a1
		count = 1
	if a1 == max:
		count += 1
print("最大的是%s"%max)
print("出现了%s次"%count)

运行结果

 14.十进制转2进制

a = int(input("请输入一个十进制数:"))
b = ""
while a != 0:
	c = a % 2
	b = str(c) + b
	a = a // 2
print(b)

运行结果

15.十进制转十六进制

a = int(input("请输入一个十进制数:"))
b = ""
while a != 0:
	c = a % 16
	a = a // 16
	if c == 15:
		c ="F"
	if c == 14:
		c ="E"	
	if c == 13:
		c ="D"
	if c == 12:
		c ="C"
	if c == 11:
		c ="B"
	if c == 10:
		c ="A"
	b = str(c) + b
print(b)

运行结果

 

16.蒙特卡罗模拟

运行结果

17.显示闰年

b = 0
for a in range(2001,2101):
	if a % 4 == 0 and a % 100 != 0:
		print(a,end="  ")
		b += 1
		if b % 10 == 0:
			print()

运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值