实现计算硬币的功能

时间:2016-09-27 03:29:56

标签: python-3.x

我是编程新手,这整件事让我很困惑。我的教授给了我们一项任务,他没有教会我们如何做,也没有在我们的教科书中。请帮忙!问题是“考虑到季度,硬币,镍币和便士的数量,实施一项功能来获得您手头的总金额”

这是使用python 3

谢谢!

2 个答案:

答案 0 :(得分:1)

我通过为您编写代码来帮助您,但这可以帮助您开始朝着正确的方向前进。我实际上建议先阅读this article

如本文所述,解决问题的步骤如下:

  1. 了解问题 - 你被要求查找或展示什么?你了解所用的所有术语/单词吗?你有足够的信息来解决这个问题吗?你有足够的背景知识"能解决问题吗?

    这一步听起来应该是显而易见的,但很多人都会跳过它。例如,很多在这个网站上提问的人会问一些类似的问题,如何在C#中编写 x ?"并且在经过一些探索之后才承认他们实际上并不知道C#。那么,在这种情况下,他们显然缺少关键背景知识,所以他们的第一步是阅读一些关于C#的教程。

    在这种情况下,术语包括" Python," " Python 3," "功能"以及"季度等货币条款," "硬币," "镍,"我假设你知道什么季度,角钱等等(虽然我想这可能会让你感到困惑,这取决于你来自哪里;例如,我读了一段时间的文章,提到了& #34; kopek"我不得不抬头知道那是卢布的1/100。

    问题是:你认识Python好吗?如果没有,您可能想要阅读它上面的教程(或者如果他们提供有关Python的信息,请查看您的讲义和/或教科书)。你知道Python 3与Python 2.7的区别吗? (提示:存在重大差异)。您熟悉Python函数是什么以及它们是如何编写的?

    其中一些可能很明显,但是有多少人会跳过其中一个步骤,你会感到惊讶。我实际上已经完成了这件事 - 开始研究问题只是为了意识到我并没有完全理解它或者我不知道这些术语的含义。创意顾问托德亨利认为,未能完全理解这个问题是导致问题的主要原因之一。跨所有创意字段(不仅仅是软件工程或数学)。

  2. 制定计划
  3. 执行计划
  4. 回顾/反思 - 测试你的解决方案,考虑是否有更好的方法来做,等等。
  5. 首先要了解问题。忘记编程一秒钟 - 如果我给你一堆改变,并要求你算一算,#34;手工制作,"你会怎么做? (" 如何做到"在许多情况下实际上非常有帮助)。例如,如果我给你5个季度,3个硬币,2个镍币和3个便士,那多少钱?想想你可以采取的不同方式:

    • 5个季度= 0.25 * 5 = 1.25美元
    • 3 dimes = 3 * 0.10 = 0.30。
    • 2个镍= 2 * 0.05 = 0.10。
    • 3便士= 3 * 0.01 = 0.03。 因此,答案是$ 1.25 + $ 0.30 + $ 0.10 + $ 0.03。你被要求展示或做的是写一个程序,它会像我刚才所做的那样做。#34;

    希望,这可以解决问题"部分。在这一点上,我将把步骤2 - 4留给你。

    以下是您可能要测试的一些方案:

    • 各种硬币中的一种或几种
    • 一种硬币中的几种,其余的都没有(例如5个季度,没有别的或3个硬币,没有别的)
    • 1个季度,3个角钱中的一些
    • 硬币数量等于或超过1美元的情况 - 例如120便士,10角钱,4个季度等 尝试测试不同的"种类"场景以及边缘情况。"错误很多更可能在"边缘"有效的投入。例如,如果教授说你不能有超过1美元的硬币,那么用0,1,99,100和101便士进行测试。 99和100应该"工作"通常它应该"拒绝"或者"优雅地失败" 101便士。

答案 1 :(得分:0)

核心数据是两个数组,一个是硬币数量的数组,另一个是硬币值数组。您需要循环遍历数组,将一个数组中的值乘以另一个数组,然后将总数加起来。

您可以使用循环手动执行此操作(这是一种很好的做法,然后您可以使用任何语言实现此操作)或对数组a和b使用python“sum”函数,超过数组的长度。

sum([a [i] * b [i] for i in range(len(b))])