【发布时间】:2015-01-24 02:00:29
【问题描述】:
昨天我问了一个关于我正在创建的文本计算器的计算功能的问题。我收到一条回复,建议我使用 operator 模块以 Python 方式对 两个或更多 操作数进行操作。
计算器使用一个函数计算所有运算。一个字典 (operatorsDict),由四个条目组成,每个操作一个,存储每个操作的“预设”。执行该功能时,将加载所选操作的预设。这些预设之一是“中性起点”。这是函数:
def Calculate():
global result, operatorsDict #result is the answer to the calculation and = 0 at this point
opFunc, result = operatorsDict[operation] #loading presets from dictionary -
for operand in operandList:
result = opFunc(result, operand)
在此设置中,乘法需要 NSP 为 1:这样,不是将 result (0) 与每个操作数相乘(无论如何都会产生零),而是将 1 和操作数相乘。添加不需要 NSP。
但是,减法和除法需要 NSP。他们都应该将operandList[0] 作为他们的 NSP,但这会导致当前系统停止工作。
有什么方法可以修改函数,使其适用于需要 NSP 的第一个操作数的操作,例如减法和除法?
【问题讨论】:
标签: python calculator division subtraction