当前位置:   article > 正文

Python基础练习题--第四章 循环结构_python循环结构例题

python循环结构例题

目录

1036:【例4.1】输出连续10个数(浙版)

1037:【例4.2】网购笔记本(粤教)

1038:【例4.3】温度对应表1(沪版)

1039:【例4.4】温度对应表2(沪版)

1040:【例4.5】沃利斯公式(沪版)

1041:练4.1  for循环求和

1042:练4.2  输出偶数

1043:练4.3  输出奇偶数之和

1044:练4.4  求阶乘n!的值

1045:练4.5  数据统计

1046:练4.6  三角形

1047:【例4.6】募集捐款(粤教)

1048:【例4.7】数字反转(沪版)

1049:【例4.8】理财产品收益(科教)

1050:【例4.9】求所有因子(浙版)

1051:【例4.10】猜数游戏(浙版)

1052:【例4.11】计算圆周率(沪版)

1053:练4.7  求第几项

1054:练4.8  求最大公约数

1055:练4.9  求最小n值

1056:练4.10  求末两位数

1057:练4.11  体操队

1058:【例4.12】求阶乘和

1059:【例4.13】九九乘法表(人教)

1060:【例4.14】四位完全平方数

1061:练4.12  百钱买百鸡

1062:练4.13  水仙花数

1063:练4.14  找素数

1064:练4.15  阶乘之和

1065:练4.16 分解质因数

1036:【例4.1】输出连续10个数(浙版)

【题目描述】
从0开始输出,连续输出10个数。

【输入】
(无)

【输出】
输出10个数,每个数中间有1个空格。

【输入样例】
(无)
【输出样例】
0 1 2 3 4 5 6 7 8 9

  1. for i in range(0,10):
  2. print(i,end=" ")

1037:【例4.2】网购笔记本(粤教)

【题目描述】
某小组决定网购单价为1元至10元的十种笔记本各一本,求一共要花多少钱?

【输入】
(无)

【输出】
一行一个整数,表示答案。

【输入样例】
(无)
【输出样例】
(无)

  1. j=0
  2. for i in range(1,11):
  3. j=i+j
  4. print(j)

1038:【例4.3】温度对应表1(沪版)

【题目描述】
计算华氏100度到105度所对应的摄氏温度。精确到小数点后2位。

换算公式 C=5×(F−32)÷9(其中C表示摄氏温度,F表示华氏温度)。

【输入】
(无)

【输出】
若干行每行两个数,表示华氏温度(整数,占8个字符宽度)与摄氏温度(占10个字符宽度,保留两位小数)。

【输入样例】
(无)
【输出样例】
     100     37.78
     101     38.33
     102     38.89
     103     39.44
     104     40.00
     105     40.56

  1. for f in range(100,106):
  2. c=5*(f-32)/9
  3. print("%8.0f%10.2F"%(f,c))

1039:【例4.4】温度对应表2(沪版)

【题目描述】
人体温度计的合理范围是华氏90度到110度。给定华氏温度的下限 l,上限 h,输出此范围的华氏摄氏温度对应表。

【输入】
第一行为整数 l;

第二行为整数 h。

【输出】
若干行每行两个数,表示华氏温度(整数,占8个字符宽度)与摄氏温度(占10个字符宽度,保留两位小数)。

如果下限 l 大于等于上限 h,输出“输入的下限应该小于上限”。

【输入样例】
93
105
【输出样例】
      93     33.89
      94     34.44
      95     35.00
      96     35.56
      97     36.11
      98     36.67
      99     37.22
     100     37.78
     101     38.33
     102     38.89
     103     39.44
     104     40.00

  1. l=int(input())
  2. h=int(input())
  3. if l>h:
  4. print("输入的下限应该小于上限")
  5. else:
  6. for f in range(l, h):
  7. c=5*(f-32)/9
  8. print("%8.0f%10.2f"%(f,c))

1040:【例4.5】沃利斯公式(沪版)

【题目描述】
使用沃利斯公式求圆周率 π。

沃利斯公式:


 

【输入】
(无)

 【输出】
一行一个浮点数,表示圆周率 π。精确到小数点后4位。

【输入样例】
(无)
【输出样例】
3.1415

  1. s=1
  2. for i in range(2,20000,2):
  3. j=i/(i-1)*i/(i+1)
  4. s=s*j
  5. pi=2*s
  6. print("%.4f"%(pi))

1041:练4.1  for循环求和

【题目描述】
利用for循环。计算输出1+2+3+...+n的和。

【输入】
输入n。

【输出】
如题述,之和。

【输入样例】
10
【输出样例】
55

  1. n=int(input())
  2. j=0
  3. for i in range(1,n+1):
  4. j=j+i
  5. print(j)

1042:练4.2  输出偶数

【题目描述】
按照由小到大的顺序,输出1∼n之间的所有偶数。

【输入】
输入n。

【输出】
输出为一行,各个偶数之间用一个空格隔开。

【输入样例】
10
【输出样例】
2 4 6 8 10

  1. n=int(input())
  2. for i in range(1,n+1):
  3. if i%2==0:
  4. print(i,end=" ")

1043:练4.3  输出奇偶数之和

【题目描述】
利用for循环,分别输出1∼n之间的所有奇数的和、偶数的和。

【输入】
输入n。

【输出】
输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。

【输入样例】
10
【输出样例】
30 25

  1. n=int(input())
  2. sum1=0
  3. sum2=0
  4. for i in range(1,n+1):
  5. if i%2==0:
  6. sum1+=i #偶数之和
  7. else:
  8. sum2 += i # 奇数之和
  9. print(sum1, sum2, end=" ")

1044:练4.4  求阶乘n!的值

【题目描述】
利用for循环求n!的值。

提示,n!=1×2×...×n。

【输入】
输入一个正整数n。

【输出】
输出n!的值。

【输入样例】
4
【输出样例】
24

  1. n=int(input())
  2. j=1
  3. for i in range(1,n+1):
  4. j*=i
  5. print(j)

1045:练4.5  数据统计

【题目描述】
输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。

【输入】
一行,若干个整数。

【输出】
一行,即,最小值、最大值和平均值(保留3位小数)。

【输入样例】
1 2 3
【输出样例】
1 3 2.000

  1. a=input().split()
  2. min=10000000
  3. max=0
  4. n=0
  5. s=0
  6. for i in a:
  7. i=int(i)
  8. s+=i
  9. if i<min:
  10. min=i
  11. if i>max:
  12. max=i
  13. n+=1
  14. print(min,max,'%.3f'%(s/n))

1046:练4.6  三角形

【题目描述】
对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的直角三角形。

例如:当n=5时,输出:

*
**
***
****
*****
【输入】
输入n。

【输出】
题述三角形。

【输入样例】
5
【输出样例】
*
**
***
****
*****

  1. n=int(input())
  2. for i in range(1,n+1):
  3. print(i*"*")

1047:【例4.6】募集捐款(粤教)

【题目描述】
某场募捐活动上,第一个人募捐20元,第二个人募捐25元……后一个人比前一个人均多募捐5元,求第几个人募捐后,总金额累计大等于500元。

【输入】
(无)

【输出】
一行一个整数,表示答案。

【输入样例】
(无)
【输出样例】
(无)

  1. money=20
  2. num=1
  3. sum=0
  4. while sum<500:
  5. num+=1
  6. money+=5
  7. sum+=money
  8. print(num)
  1. j=0
  2. s=0
  3. for i in range(20,501,5):
  4. j += 1
  5. s += i
  6. if s>500:
  7. break
  8. print(j)

1048:【例4.7】数字反转(沪版)

【题目描述】
给定一个正整数,请将该数各位上数字反转得到一个新数。得到的新数的最高位数字不应为零,例如输入380,反转后得到的新数为83。

【输入】
一行一个正整数。

【输出】
一行一个正整数,表示反转后的新数。

【输入样例】
726
【输出样例】
627

  1. num=int(input())
  2. reversenum=0
  3. while num>0:
  4. reversenum=reversenum*10+num%10
  5. num=num//10
  6. print(reversenum)

1049:【例4.8】理财产品收益(科教)

【题目描述】
小明是一位精明的投资者。他购买了10万元一年期收益率3.7% 的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下的自己仍购买此种理财,在收益率不变的情况下,多少年后被自己全部取出?

【输入】
(无)

【输出】
一行一个整数

【输入样例】
(无)
【输出样例】
(无)

  1. num=100000
  2. j=0
  3. while num>=0:
  4. j+=1
  5. num=num*0.037+num-20000
  6. print(j)

1050:【例4.9】求所有因子(浙版)

【题目描述】
输入一个正整数 x ,输出所有不包括本身的所有因子。

【输入】
输入一行一个整数 x 。

【输出】
输出若干行,一行一个整数,表示正整数x的不包括本身的所有因子。

【输入样例】
243
【输出样例】
1
3
9
27
81

  1. x=int(input())
  2. i=1
  3. while i<x:
  4. if x%i==0:
  5. print(i)
  6. i+=1

1051:【例4.10】猜数游戏(浙版)

【题目描述】
请设计一个猜数游戏平台,有两个玩家Alice和Bob。Alice给定一个数,请Bob猜这个数是多少。猜数方法是交互的:Bob输入猜测的数字,平台给出相应的提示:“偏大”“偏小”或“正确”。若所猜数字正确,则游戏结束;否则继续猜数。

请你实现这个猜数游戏平台。

【输入】
第一行输入一个数,表示Alice给定的数。

接着输入若干行,表示Bob的猜数过程。每行一个整数,表示Bob猜测的数字。

【输出】
对于每一行输入,输出一行。输出偏大”“偏小”或“正确”。

【输入样例】
23
300
20
100
25
23
【输出样例】
偏大
偏小
偏大
偏大
正确

  1. Alice=int(input())
  2. i=1
  3. while i:
  4. Bob = int(input())
  5. if Bob > Alice:
  6. print('偏大')
  7. if Bob < Alice:
  8. print('偏小')
  9. if Bob==Alice:
  10. print('正确')
  11. i=0

1052:【例4.11】计算圆周率(沪版)

【题目描述】
使用如下公式求圆周率 \pi

公式:\frac{\pi^{2}}{6}=1+\frac{1}{2^{2}}+\frac{1}{3^{2}}+\frac{1}{4^{2}}+\cdots
【输入】
(无)

【输出】
一行一个浮点数,表示圆周率 π。精确到小数点后4位。

【输入样例】
(无)
【输出样例】
3.1415
 

  1. from math import sqrt #调用库
  2. i=1
  3. s=0
  4. j=1
  5. while j>0.00000001:
  6. s+=j
  7. i+=1
  8. j=1/(i**2)
  9. pi=sqrt(6*s) #返回平方根
  10. print("%.4f"%(pi))

  1. i=1
  2. s=0
  3. j=1
  4. while j>0.00000001:
  5. s+=j
  6. i+=1
  7. j=1/(i**2)
  8. pi=(6*s)**0.5
  9. print("%.4f"%(pi))

1053:练4.7  求第几项

【题目描述】
对于正整数n,m,求s=1+2+3……+n,当加到第几项时,s的值会超过m?

【输入】
输入m。

【输出】
输出n。

【输入样例】
1000
【输出样例】
45

  1. m=int(input())
  2. n=0
  3. s=0
  4. while s<=m:
  5. n+=1
  6. s += n
  7. print(n)
  1. m=int(input())
  2. i=1
  3. n=1
  4. s=0
  5. while i:
  6. s+=n
  7. if s>m:
  8. print(n)
  9. i=0
  10. n+=1

1054:练4.8  求最大公约数

【题目描述】
求两个正整数m,n的最大公约数。

【输入】
输入m,n。

【输出】
m,n的最大公约数。

【输入样例】
4 6
【输出样例】
2

  1. m,n=map(int,input().split())
  2. if m>n:
  3. min=n
  4. else:
  5. min=m
  6. while min>1 and (m%min!=0 or n%min!=0):
  7. min-=1
  8. print(min)

1055:练4.9  求最小n值

【题目描述】
编一程序求满足不等式1+\frac{1}{2}+\frac{1}{3}\cdots +\frac{1}{n}\geq m的最小n值。

其中,n,m为正整数。

【输入】
输入m。

【输出】
输出n。

【输入样例】
3
【输出样例】
11

  1. m=int(input())
  2. s=1
  3. n=1
  4. while s<m:
  5. n += 1
  6. s+=1/n
  7. print(n)

1056:练4.10  求末两位数

【题目描述】
求n个1992的乘积的末两位数是多少?

【输入】
输入n。

【输出】
如题述的末两位数。

【输入样例】
3
【输出样例】
88

  1. n=int(input())
  2. s=1
  3. while n>0:
  4. s*=1992
  5. n-=1
  6. s=s%100
  7. print(s)

1057:练4.11  体操队

【题目描述】
校体操队到操场集合,排成每行2人,最后多出1人;排成每行3人,也多出1人;分别按每行排4,5,6人,都多出1人;当排成每行7人时,正好不多。求校体操队至少多少人?

【输入】
如题述,无。

【输出】
校体操队人数。

【输入样例】
(无)
【输出样例】
(无)
【提示】
例如:人数为15,直接输出“15”就可以啦。

  1. x=0
  2. i=0
  3. while i==0:
  4. i=1
  5. x+=7
  6. if x%2!=1:
  7. i=0
  8. if x % 3 != 1:
  9. i = 0
  10. if x % 4 != 1:
  11. i = 0
  12. if x % 5 != 1:
  13. i = 0
  14. if x % 6 != 1:
  15. i = 0
  16. print(x)

1058:【例4.12】求阶乘和

【题目描述】
求 S=1!+2!+3!+\cdots +n!

【输入】
输入正整数n。

【输出】
输出s。

【输入样例】
3
【输出样例】
9

  1. n=int(input())
  2. s=0
  3. t=1
  4. for i in range(1,n+1):
  5. t*=i
  6. s+=t
  7. print(s)

1059:【例4.13】九九乘法表(人教)

【题目描述】
参照以下输出格式:

1 * 1 = 1  
2 * 1 = 2  2 * 2 = 4  
3 * 1 = 3  3 * 2 = 6  3 * 3 = 9  
4 * 1 = 4  4 * 2 = 8  4 * 3 = 12  4 * 4 = 16  
5 * 1 = 5  5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25  
6 * 1 = 6  6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36  
7 * 1 = 7  7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49  
8 * 1 = 8  8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64  
9 * 1 = 9  9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81
【输入】
(无)

【输出】
如题述。

【输入样例】
(无)
【输出样例】
(无)

  1. for i in range(1,10):
  2. for j in range(1,i+1):
  3. print(i,"*",j,"=",i*j," ",end="")
  4. print()

1060:【例4.14】四位完全平方数

【题目描述】
输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。

【输入】
(无)

【输出】
由小到大输出,每个数占一行。

【输入样例】
(无)
【输出样例】
(无)

  1. for i in range(1,10):
  2. for j in range(10):
  3. s=i*1000+i*100+j*10+j
  4. h=s**0.5
  5. t=h%int(h)
  6. if t==0:
  7. print(s)
  1. x=1
  2. while 1:
  3. n=x*x
  4. x=x+1
  5. if n<1000:
  6. continue
  7. if n>9999:
  8. break
  9. h=n//100
  10. l=n%100
  11. if h//10==h%10 and l//10==l%10:
  12. print(n)

1061:练4.12  百钱买百鸡

【题目描述】
百钱买百鸡问题。鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

【输入】
(无)

【输出】
输出各种鸡翁、鸡母、鸡雏的数量,依次由小到大,每种情况各占一行,每行三个数之间用一个空格隔开。

【输入样例】
(无)
【输出样例】
(无)

  1. for x in range(100//5+1):
  2. for y in range(100//3+1):
  3. z=100-x-y
  4. if 5*x+3*y+z/3==100 and z%3==0:
  5. print(x,y,z)

1062:练4.13  水仙花数

【题目描述】
求100-999中的水仙花数。若三位数ABC,ABC=A^{3}+B^{3}+C^{3},则称ABC为水仙花数。

例如153,1^{3}+5^{3}+3^{3}=1+125+27=153,则153是水仙花数。

【输入】
(无)

【输出】
由小到大输出满足条件的数,每个数占一行。

假设需要输出两个数:119,100。需要输出以下形式:

100

119

【输入样例】
(无)
【输出样例】
(无)

  1. for a in range(1,10):
  2. for b in range(10):
  3. for c in range(10):
  4. n=a*100+b*10+c
  5. m=a**3+b**3+c**3
  6. if n==m:
  7. print(m)

1063:练4.14  找素数

【题目描述】
输出正整数a到b之间的所有素数。

【输入】
输入a,b。

【输出】
由小到大,输出a到b之间的所有素数。每个数占一行。

【输入样例】
5 10
【输出样例】
5
7

  1. from math import sqrt
  2. a,b=map(int,input().split())
  3. for i in range(a,b+1):
  4. x=2
  5. while x<=int(sqrt(i)) and i%x!=0:
  6. x+=1
  7. if x>int(sqrt(i)):
  8. print(i)

1064:练4.15  阶乘之和

【题目描述】
输入n,计算S=1! + 2! + 3! + … + n!的末6位(不含前导0)。n≤106, n!表示前n个正整数之积。

【输入】
输入n。

【输出】
如题述,求阶乘之和。

【输入样例】
10
【输出样例】
37913

  1. n=int(input())
  2. s=0
  3. for i in range(1,n+1):
  4. f=1
  5. for j in range(1,i+1):
  6. f*=j
  7. s+=f
  8. print(s%1000000)

1065:练4.16 分解质因数

【题目描述】
把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。

输入一个正整数n,将n分解成质因数乘积的形式。

【输入】
一个正整数n。

【输出】
分解成质因数乘积的形式。质因数必须由小到大,见样例。

【输入样例】
36
【输出样例】
36=2*2*3*3

  1. n=int(input())
  2. i=2
  3. print(n,end="=")
  4. while n!=1:
  5. while n%i==0:
  6. print(i,end="")
  7. n/=i
  8. if n!=1:
  9. print("*",end="")
  10. i+=1

习题在线测评网址

以上代码仅供参考学习,有好的意见请留言。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/386869
推荐阅读
相关标签
  

闽ICP备14008679号