如何解决我如何仅使用后继功能在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
,
以下是代码示例中的问题列表:
- 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。