python编程习题(循环语句)

循环语句 第一题:
python编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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)

第五题:
python编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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()

第九题:
python编程习题(循环语句)
文章图片

分析:
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()

第十题:
python编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
1、计算e 的近似值
2、for 循环,以10000开始,100001结束,间隔10000
【python编程习题(循环语句)】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))

第十二题:
python编程习题(循环语句)
文章图片

分析:
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)

第十三题:
python编程习题(循环语句)
文章图片

分析:
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编程习题(循环语句)
文章图片

分析:
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)

第十五题:
python编程习题(循环语句)
文章图片

分析:
1、提示用户输入十进制的数字
2、十进制转换为二进制%2
3、输出
代码如下:
num = int(input("请你输入一个十进制的数:")) binstr = "" while num != 0: a = num % 2 binstr = str(a) + binstr num //= 2 print(binstr)

第十六题:
python编程习题(循环语句)
文章图片

分析:
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)

第十七题:
python编程习题(循环语句)
文章图片

分析:
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()


    推荐阅读