python中分支与循环的必刷经典例题(附参考答案)

您所在的位置:网站首页 python顺序结构程序设计例题及答案大全解析 python中分支与循环的必刷经典例题(附参考答案)

python中分支与循环的必刷经典例题(附参考答案)

#python中分支与循环的必刷经典例题(附参考答案)| 来源: 网络整理| 查看: 265

python中分支与循环的必刷经典例题(附参考答案)

​ 分支与循环在应用时是非常灵活的,可以单独使用,也可以相互嵌套循环使用,而且对于一个问题来讲,就像做一个数学题,虽然答案只有一个,但是解决问题的思路和方法并不是唯一只有一种,可能现在认为最优的解决方式都并非在100年之后还是,最佳的解决算法,所以写程序也是如此,并非有一种思想它就是解决这个问题的最佳方式,而它只是目前在所有算法中最而已。记住,解决一个问题,一定是先采用能解决问题的方法解决它(哪怕当前方法很笨),而后才是在此基础上思考解决此问题更优的方式,不要由于一开始就在思考一个“最佳”的方案才开始解决。

想要学好编程,多加练习是不可或缺的一环,那么,学习分支与循环后(没看过的赶紧打开( 3分钟带你了解Python中分支与循环1),当然也是少不了练习,在这里,我总结了很多在学习分支与循环的必刷的经典例题,一起来看看。可以先试着写一下,参考代码在后面

1.对1到100的求和

2.求1到100之间是3或者5的倍数的整数

3.输入一个非负整数 n ,输出它的阶层n!

4.输入两个正整数 n和 m,找它们的最大公因数

5.使用for 循环打印出下列样式

* ** *** **** *****

6.打印乘法九九表

7.输入n,输出n个斐波拉切数(不知道的赶紧百度百度斐波拉切数)

8.百钱白鸡问题

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,欲百钱买百鸡,鸡翁、鸡母、鸡雏各几何?

用人话讲就是,公鸡五块一只,母鸡三块一只,小鸡一块钱三只,用100块钱买100只鸡,公鸡、母鸡和小鸡各能买多少只?

输入一个正整数,判断它是不是质数

10.输入10个1-100之间的数,计算这10个数的平均数,找出最大值、最小值

11.猜随机数游戏

机器产生一个随机数(假设在1,100之间),用户每次输入一个数字,当猜对后结束,如果猜7次都没有猜对,输出“智商有待充值”

12.找出100到999之间的水仙花数

各个 位数的立方之和等于这个数本身它就是水仙花数,如153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3

13.数字的反转

例如,用户输入1234,计算机输出4321

14.找出1-10000的完美数

除自身外的所有因子之和等于这个数它就是完美数,如6的因子1,2,3,有1 + 2 + 3 = 6

15.分鱼求和问题

A、B、C、D、E这5个人合伙夜间捕鱼,凌晨时都已经疲惫不堪,于是各自在河边的树丛中找地方睡着了。第二天日上三竿时,A第一个醒来,他将鱼平分为5份,把多余的一条扔回河中,然后拿着自己的一份回家去了;B第二个醒来,但不知道A已经拿走了一份鱼,于是他将剩下的鱼平分为5份,扔掉多余的一条,然后只拿走了自己的一份;接着C、D、E依次醒来,也都按同样的办法分鱼。问这5人至少合伙捕到多少条鱼?

16.输入三角形的三条边的长度,如果是三角形,算出它的面积,否则让用户重新输入

(算面积采用海伦公式)

在这里插入图片描述

参考代码:

(不一定最优,有更好的写法留在评论区哦)

1.对1到100的求和

total = 0 # 定义一个变量total来进行和的存储 for i in range(1,101): total += i print(f"1-100的累加和为{total}")

2.求1到100之间是3或者5的倍数的整数

for i in range(1,101): if i % 3 == 0 or i % 5 == 0: print(i)

3.输入一个非负整数 n ,输出它的阶层n!

n = int(input("输入非负整数n:")) # 接收用户输入的整数 total = 1 # 用total存储累积 for i in range(2, n + 1): total *= i print(f"{n}的阶层 = {total}")

4.输入两个正整数 n和 m,找它们的最大公因数

print("输入两个正整数") n = int(input("输入正整数1:")) m = int(input("输入正整数2:")) min = 0 if m > n: min = n else: min = m for i in range(min,0,-1): if n % i == 0 and m % i == 0: print(f"它们最大公因数为{i}") break

还有一种更简单的求法,效率更高的算法是欧几里得算法,参考代码如下(看不懂也没有关系):

n = int(input("输入正整数1:")) m = int(input("输入正整数2:")) m, n = max(m, n), min(m, n)# 用 max函数找出m,n之间的最大值,用 min函数找出m,n之间的最小值 while m % n != 0: m, n = n, m - n print(f"最大公因数为{n}")

5.使用for 循环打印出下列样式

* ** *** **** ***** for i in range(1,6): for j in range(1, i + 1): print("*", end='') print()

更简单的写法

n = int(input("输入n")) for i in range(1,n + 1): print(f"{i} "* i)

6.打印乘法九九表

n = int(input("输入n")) # 输入·n = 9 for i in range(1, n + 1): for j in range(1, i + 1): print(f"{j} * {i} = {i * j}", end = "\t") # 用\t可以将每一列对齐 print()

7.输入n,输出n个斐波拉切数(不知道的赶紧百度百度斐波拉切数)

n = int(input("输入n")) a = 1 b = 1 if n == 1: print(a) else: print(a, b, end=" ") for _ in range(2,n): # 循环变量用不上时用 _ c = a + b print(c, end=' ') a = b b = c

8.百钱白鸡问题

鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一, 欲百钱买百鸡,鸡翁、鸡母、鸡雏各几何?

用人话讲就是,公鸡五块一只,母鸡三块一只,小鸡一块钱三只,用100块钱买100只鸡,公鸡、母鸡和小鸡各能买多少只?

for x in range(21): # 公鸡的范围在0-21只之间 for y in range(34): # 母鸡的范围在0-33只之间 z = 100 - x - y # 小鸡的只数等于100-x-y if z % 3 == 0 and 5 * x + 3 * y + z // 3 == 100: print(x, y, z)

9.输入一个正整数,判断它是不是质数

int1 = int(input("输入一个正整数")) flag = True for i in range(2,int1): if int1 % i == 0: flag = False break if flag and int1 > 1: print(f"{int1}是质数") else: print(f"{int1}不是质数")

10.输入10个1-100之间的数,计算这10个数的平均数,找出最大值、最小值

max1 = 0 min1 = 101 # 比100大就行 total = 0 count = 0 while count max1: max1 = int1 # 判断最小值 if int1 ran1: print("小一点") elif guess 7: print("智商余额不足")

12.找出100到999之间的水仙花数

各个 位数的立方之和等于这个数本身它就是水仙花数,如153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3

bit = 0 ten = 0 hundred_bit = 0 t = 0 for i in range(100, 1000): bit = i % 10 hundred_bit = i // 100 t = bit ** 3 + ten ** 3 + hundred_bit ** 3 ten = (i % 100) // 10 if t == i: print(i)

13.数字的反转

例如,用户输入1234,计算机输出4321

total = 0 number = int(input("请输入一个数字")) while number > 0: a = number // 10 b = number % 10 total = total * 10 + b number = a print(total)

改进

total = 0 number = int(input("请输入一个数字")) while number > 0: total = total * 10 + number % 10 number //= 10 print(total)

14.找出1-10000的完美数

除自身外的所有因子之和等于这个数它就是完美数,如6的因子1,2,3,有1 + 2 + 3 = 6

for i in range(1,10000): j = 1 sum1 = 0 while j


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3