擅长:python、mysql、java
<p>在对多个值执行公共处理时,应使用列表而不是单个变量。这允许您将通用逻辑应用于元素,并基于可存储在变量中的索引对其进行操作:</p>
<pre><code>def compute(*operNums):
operNums = list(operNums)
numbers = operNums[::2] # [number0,number1,number2,number3]
operations = operNums[1::2] # [operation0,operation1,operation2]
while operations: # process list until all operations performed
for op in ("^","**","*","+"): # find highest priority operation
if op not in operations: continue
i = operations.index(op) # index of operation
operations.pop(i) # remove completed operation
if op in ["^","**"]: numbers[i] **= numbers.pop(i+1) # remove right side
elif op == "*": numbers[i] *= numbers.pop(i+1) # left side number
elif op == "+": numbers[i] += numbers.pop(i+1) # is replaced by result
else: return "ERROR"
return numbers[0]
print(compute(1,"+",2,"**",3,"*",5)) # 41
</code></pre>