我如何仅使用后继功能在python中做计算器?

问题描述

我需要用几个简单的操作制作一个计算器,但只使用Python中的后继函数 总和,乘法和指数运算,但我在实现代码时遇到一些逻辑问题,您能帮我吗? 这就是我现在得到的:

def suc(a):
  return a + 1

def sum(a,b):
  c = 0
  for i in range(b):
    c = suc(c)
  return c

def multiplication(a,b):
  c = 0
  for i in range(b):
    c = sum(c,c)
  return c

def exp(a,b):
  c = 0
  for i in range(b):
    c = multiplication(c,c)
  return c

解决方法

要使代码正常工作,您需要将其更改为

def suc(a):
    return a + 1

def sum(a,b)
    for i in range(b):
        a = suc(a)
    return a

def multiplication(a,b):
    c = 0
    for i in range(b):
        c = sum(c,a)
    return c

def exp(a,b):
    c = a
    for i in range(b-1):
        c = multiplication(c,a)
    return c
,

以下是代码示例中的问题列表:

  1. sum函数未将2个操作数相加
  2. 乘法函数未将左操作数添加到自身
  3. exp函数未将临时值初始化为1

以下是可解决上述问题的工作代码:

# File name: calculator-demo.py

def suc(a):
  return a + 1

def sum(a,b):
  for i in range(b):
    a = suc(a)
  return a

def multiplication(a,b):
  c = 0
  for i in range(b):
    c = (c + a)
  return c

def exp(a,b):
  c = 1
  for i in range(b):
    c = multiplication(a,c)
  return c

print("sum(2,3) = ",sum(2,3))

print("multiplication(2,multiplication(2,3))

print("exp(2,exp(2,3))

输出:

> python calculator-demo.py

sum(2,3) =  5
multiplication(2,3) =  6
exp(2,3) =  8