擅长:python、mysql、java
<p>只需创建第二个字典,其中包含指向每个函数的函数指针。或者,您可以运行eval()并在运行时添加操作代码</p>
<p>方法1:</p>
<p><code>op_dict = {'+': add, '-': sub, '*': mult, '/': div } # dict with function pointers</code></p>
<p><code>op_dict[op]() # call the function</code></p>
<p>方法2:</p>
<p><code>return eval('{num1}{op}{num2}'.format(num1=num1, op=op, num2=num2))</code></p>
<p>如果只进行这4个操作,并且只计算2个num,那么使用方法2并在calculate函数中完成所有操作可能会更容易。它看起来像:</p>
<pre><code>def calculate(input):
for op in ['+', '-', '*', '/']:
if op in input:
num1 = input.rsplit(op)[0]
num2 = input.rsplit(op)[-1]
return eval('{num1}{op}{num2}'.format(num1=num1, op=op, num2=num2))
</code></pre>
<p>即使有多个具有多个输入编号的操作,也可以在每个操作分隔符处进行拆分,然后通过calculate函数递归运行这些计算的列表</p>