计算器减法和除法的结果错误

时间:2017-07-28 22:21:12

标签: python python-3.x calculator

我的加法和乘法工作很好。但是,对于减法,如果我输入2个数字,3和1,答案将是-2,这显然是不正确的。分部也不能正常运作。

我可以输入2个数字,8和4,它会告诉我答案是0.5,这也是不正确的。

我的代码出了什么问题?

AND instr('+420+421+357+386', $row['priv_handy'], 0, 4)

2 个答案:

答案 0 :(得分:0)

问题在于这些行..

diff = 0
while s < x:
   number = int(input("Please enter number here:  "))
   s += 1
   diff = calculator.subtraction(number,diff)
print("The answer is", diff)

让我们说输入是上面代码片段的第2行第3行,循环第一次迭代的差异,数字(输入)是2而diff是0

  1. 2-0 = 2 diff现在变为2 第二次迭代中输入为1,
  2. 1 -2 = -1数字为1和1 - diff将变为diff。那是-1。
  3. 因为在你提到的循环中,(数字,差异) - 减法以相同的顺序发生

答案 1 :(得分:-1)

if operations == 4:
    d = 0
    quo = 1
    while d < x:
        number = int(input("Please enter number here:  "))
        d += 1
        quo = calculator.division(number, quo)
    print("The answer is", quo)

第一次通过quo变为8.然后它再次通过4作为number和8作为quo4 / 8 = .5

以下是使用reduce库中的functools的替代解决方案。

if operations == 4:
    quo = 1
    numbers = list()
    while len(numbers) < x:
        number = int(input("Please enter number here:  "))
        numbers.append(number)
    quo = reduce(calculator.division, numbers)
    print("The answer is", quo)

我想知道为什么这个被贬低的时候确实是为什么师不工作的答案......