python编程习题(循环语句)

循环语句

第一题:

python编程习题(循环语句)_第1张图片

分析:

1、使用random随机产生数字

2、提示输入猜测的数字

3、判断语句,判断所猜的数字与随机产生数的大小比较

4、错误或者正确提示

5、输出

代码如下:

import random
number = random.randint(0,100)
# print(number)		测试随机产生一个数
while True:
	guess = int(input("请随机选择一个0到100的数:"))
#判断猜的数字的大小
	if guess < number:
		print("猜的数字小于答案,请你继续猜")
	elif guess > number:
		print("猜的数字大于答案,请你继续猜")
	else:
		print("恭喜你!猜对了!!!")
		break

第二题:

python编程习题(循环语句)_第2张图片

 分析:

1、输入两个数,最大公约数

2、提示输入两个数

3、需要给GCD一个初始值

4、取最小值,此处用       k = min(a,b)     表示

5、做出判断,是否为所输入两个数的公约数

6、存储于GCD

7、输出

代码如下:

a,b = eval(input("请你分别输入a,b,两个数:"))
k = min(a,b)
#初始值
gcd = 1
for i in range(2,k + 1):
	if a % i == 0 and b % i == 0:
		gcd = i
print("%s和%s的最大公约数是%s"%(a,b,gcd))

第三题:

python编程习题(循环语句)_第3张图片

分析:

1、总的点数,落在范围内点数

2、总数先赋值  num = 0

3、循环,1000000

4、使用random随机生成坐标

5、求距离,再作比较

6、如果在坐标范围内,则   num += 1

7、公式计算PI,再输出

代码如下:

import random
num = 0
s = 1000000
for i in range(0,s):
	a = random.random() * 2 - 1
	b = random.random() * 2 - 1
	h = (a ** 2 + b ** 2) ** 0.5	#h表示距离
	if h <= 1:
		num += 1
PI = num / s * 4
print(PI)

第四题:

python编程习题(循环语句)_第4张图片

分析:

1、输入无限个数字

2、输入 0 则结束输入过程

3、将正数和复数赋值 0 ,判断输入的数大于 0 还是小于 0

4、sum 总数的相加

5、avg  平均值的计算

6、分别输出

代码如下:

correct = 0  #正数
negative = 0   #负数
while True:
	num = int(input("请你输入一个数:"))
	if num > 0:
		correct += 1
	elif num < 0:
		negative += 1
	else:
		break
	sum += num
total = correct + negative
avg = sum / total
print("正数的个数为:%s"%correct)
print("负数的个数为:%s"%negative)
print("总共有%s个数:"%total)
print("平均值为:%s"%avg)

第五题:

 分析:

1、提示输入数字

2、使用整除方法

代码如下:

num = int(input("请你输入一个数:"))
i = 2
while True:		#可以将True改成num == 1,这样下边的break就可以不写
	if num % i == 0:
		print(i,end = "")
		num /= i
	else:
		i += 1
	if num == 1:
		break

# for 循环方法
# while num != 1:
# 	for i in range(2,n):
# 		if num % i == 0:
# 			print(i,end="")
# 			num /= i
# 			break

第六题:

python编程习题(循环语句)_第5张图片

分析:

1、提示输入需要打印的层数

2、需要使用到反着打印

3、循环中使用    -1    表示倒着打印,以1为对称轴

4、需要使用        abs()函数,返回数字的绝对值

代码如下:

num = int(input("请你输入你需要打印的行数:"))
for i in range(0,num):
	for j in range(num - i , 0 , -1):	# -1 表示倒着打印
		print(" ",end="")
	for j in range(-i , i + 1):
		print(abs(j) + 1,end="")
	print()

第七题:

python编程习题(循环语句)_第6张图片

分析:

1、如果按照题目要求,就可以直接将循环定于第一层开始到第七曾结束

2、可以使用未知量来,提示用户输入打印的层数,然后打印相应层数

代码如下:

类型A 

while True:
     for i in range (1,7):
         for j in range(1, 7):
             if j <= i:
                 print(j,end="")
         print()
     break;
 print()
# 类型A方法二
# while True:
# 	num = int(input("请你输入你需要打印的行数:"))
# 	for i in range(1,num + 1):
# 		for j in range(1,num + 1):
# 			if j <= i:
# 				print(j,end = "")
# 		print()
# 	break
# 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()

#类型B方法二
# while True:
# 	num = int(input("请你输入你需要打印的行数:"))
# 	for i in range(num,0,-1):
# 		for j in range(1,num + 1):
# 			if j <= i:
# 				print(j,end = "")
# 		print()
# 	break
# 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()
 
# 类型C 方法二
# while True:
# 	num = int(input("请你输入你需要打印的行数:"))
# 	for i in range(1,num + 1):
# 		for j in range(num,0,-1):
# 			if j <= i:
# 				print(j,end = "")
# 			else:
# 				print("",end = "")
# 		print()
# 	break
# 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()
 
# 类型D方法二
# while True:
# 	num = int(input("请你输入你需要打印的行数:"))
# 	for i in range(num,0,-1):
# 		a = num - i
# 		print(" " * a,end = "")
# 		for j in range(1,num + 1):
# 			if j <= i:
# 				print(j,end = "")
# 		print()
# 	break
# print()

第八题:

python编程习题(循环语句)_第7张图片

分析:

1、提示用户输入需要打印的行数,使用for循环

2、在输出时,需要进行计算

3、使用    -1    进行倒着打印

代码如下:

num = int(input("请你输入你需要打印的行数:"))
for i in range(0,num):
	for j in range(num - i , 0 , -1):
		print(" ",end = " ")
	for k in range(1 , 1 + i):
		print(2 ** (k - 1),end = " ")
	for j in range(i + 1 , 0 , -1):
		print(2 ** (j - 1),end = " ")
	print()

第九题:

分析:

1、for循环,2开始,1001结束

2、将总数     sum    初始值0

3、除以2的循环

4、总数的相加

5、sum  %    8 表示每行显示8个数

代码如下:

s = 0
for i in range(2,1001):
	for j in range(2,i):
		if i % j == 0:
			break;
	else:
		print(i,end = " ")
		s += 1
		if s % 8 == 0:
			print()

第十题:

 

 分析:

1、for 循环的表示,以10000开始,100001结束,中间相隔10000

2、s = 0

3、计算PI的值

4、输出

代码如下:

for j in range(10000,100001,10000):
	s = 0
	for i in range(1,j + 1):
		s += ((-1) ** (i + 1)) / (2 * i - 1)
		PI = 4 * s
	print("当i = %s时,PI = %s"%(j,PI))

第十一题:

python编程习题(循环语句)_第8张图片

分析:

1、计算e 的近似值

2、for 循环,以10000开始,100001结束,间隔10000

3、阶乘的表示        item *= i

4、公式计算e

5、输出e

代码如下:

for j in range(10000,100001,10000):
	e = 1
	item = 1
	for i in range(1,j + 1):
		item *= i   #此处表示阶乘
		e += 1 / item
	print("当i = %s时,e = %s"%(j,e))

第十二题:

分析:

1、找出完全数

2、for 循环,1开始,10001结束

代码如下:

for i in range(1,10001):
    s = 0
    for j in range (1,i):
        if i % j == 0:
            s +=j
    if i == s:
        print(i)

第十三题:

分析:

1、石头剪刀布小游戏,判断语句可以书写(前面有展示),此处是循环语句的书写

2、使用random随机产生所出的结果

3、提示玩家输入自己的选择

4、需要进行判断,使用减法判断谁赢谁数,然后分别对赢的一方,总数 +1

5、判断玩家赢的次数是否达到2次

6、玩家赢到2次则进行输出

代码如下:

import random
sum1 = 0
sum2 = 0
while True:
	computer = random.randint(0,2)
	player = int(input("请你选择你要出石头(0),剪刀(1),还是布(2):"))
	if player - computer == -1 or player - computer == 2:
		sum1 += 1
		if sum1 == 2:
			print("玩家赢得游戏!!!")
			break
	elif player - computer == -2 or player - computer == 1:
		sum2 += 1
		if sum2 == 2:
			print("电脑赢得游戏!!!")
			break

第十四题:

python编程习题(循环语句)_第9张图片

分析:

1、输入无限个数字,以0结束,找出最大数,以及计算最大数出现的次数

2、max  初始值赋值0,用于存储最大数

3、count  初始值赋值0,用于存储最大值出现的次数

4、提示输入数字

5、判断数字大小,用于判断最大数

6、最大数 的出现次数的相加

7、输出最大数以及最大数出现次数

代码如下:

max = 0
count = 0
while True:
	num = int(input("请你输入一个数字:"))
	if num == 0:
		break
	if num > max:
		max = num
		count = 1
	elif num == max:
		count += 1
print("最大的数是%s"%max)
print("最大数出现的次数是:%s"%count)

第十五题:

分析:

1、提示用户输入十进制的数字

2、十进制转换为二进制        %2

3、输出

代码如下:

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

第十六题:

分析:

1、提示用户输入十进制的数

2、十进制转换为十六进制         %16

代码如下:

number = int(input("Enter a number:"))
hexStr = ""
while number != 0:
    a = number % 16
    if a < 10:
        hexStr = str(a) + hexStr
    else:
        hexStr = str(87 + a) + hexStr
    number //= 16
print(hexStr)

第十七题:

分析:

1、conut 初始值赋值为0

2、for循环,2001开始,2101结束

3、判断是否为闰年

4、如果是闰年,则 count += 1

5、输出时,count % 10 表示每行显示10个年份

代码如下:

count = 0
for i in range(2001,2100 + 1):
	if i % 400 == 0 or y % 4 == 0 and i % 100 != 0:
		print(i,end = "")
		count += 1
		if count % 10 == 0:
			print()

你可能感兴趣的