page contents

python基础编程100例:第42期-猴子分桃

本文讲述了python基础编程100例:第42期-猴子分桃!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-03-BoGf6Pr96237da21b0cbb.png

本文讲述了python基础编程100例:第42期-猴子分桃!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

第42期-猴子分桃

1 问题描述

海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。

第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,

第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

用python解决这个数学难题吧!


2 解题思路

第一步: 五次相同的动作,for循环

第二步: 由于不确定最后的桃子数量,所以需要使用while循环来尝试,直到满足条件为止


3 解题方法

n = 1

while True:

    try:

        b = n

        for i in range(5):

            assert (b - 1) % 5 == 0

            b = (b - 1) / 5 * 4

        break

    except:

        n += 1

print(n)

第1行: 定义初始桃子数量为n并赋值为1

第2行: 从n=1开始尝试,无限循环知道满足条件

第3、9-10行: 使用try、except语句,若满足条件则结束循环,不满足条件则报错并让n+1进行下次循环

第4行: 定义变量b并将n的值赋值给b,这样可以不改变原本n的值

第5行: for循环遍历五次

第6行: assert函数判断丢掉一个桃子后剩下的桃子是否可以被平分,是则继续下一步,否则报错进入except语句

第7行: 给b赋值拿走五分之一桃子后剩余的桃子数量

第8行: 五次循环过后表示这个数符合题意,结束循环

第11行: 打印桃子数量


代码运行结果为:

attachments-2022-03-AmBmklwK6237d9da51f07.png

小思考

这里用到了for、except语句与assert函数结合的方式,简单讲解一下:

for、except语句在第四十期已经讲解过,try里面的内容如果报错,就会停止运行进入except后面的语句中

而assert函数会判断后面语句是否为True,若为False则报错

两者配合效果会意想不到,后面咱们会经常遇到

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
attachments-2022-06-O6IGrg0r62b3c3b0ee02f.jpeg

  • 发表于 2022-03-21 09:51
  • 阅读 ( 600 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章