admin管理员组

文章数量:1794759

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

第二题:

 分析:

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

第三题:

分析:

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)

第四题:

分析:

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

第六题:

分析:

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

第七题:

分析:

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

第八题:

分析:

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

第十一题:

分析:

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

第十四题:

分析:

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

本文标签: 习题语句Python