问题描述
我需要用几个简单的操作制作一个计算器,但只使用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
,
以下是代码示例中的问题列表:
- sum函数未将2个操作数相加
- 乘法函数未将左操作数添加到自身
- 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