我想编写一个解决数学任务的函数。任务以列表形式分配给函数(例如 [3, '+', 4, '*', 15]),并且应该通过考虑必须优先考虑乘法和除法来解决。
def getresult(TaskAsList):
"""Ermitle Ergebnis einer Aufgabe – Aufgabe muss als Liste zugeführt werden"""
while len(TaskAsList)>1:
for i in range(len(TaskAsList)-1):
if TaskAsList[i] == '*':
TaskAsList[i-1] = TaskAsList[i-1]*TaskAsList[i+1]
del(TaskAsList[i+1])
del(TaskAsList[i])
elif TaskAsList[i] == ':':
TaskAsList[i-1] = TaskAsList[i-1]/TaskAsList[i+1]
print(i)
del(TaskAsList[i+1])
del(TaskAsList[i])
for i in range(len(TaskAsList)-1):
if TaskAsList[i] == '+':
TaskAsList[i-1] = TaskAsList[i-1]+TaskAsList[i+1]
del(TaskAsList[i+1])
del(TaskAsList[i])
elif TaskAsList[i] == '-':
TaskAsList[i-1] = TaskAsList[i-1]-TaskAsList[i+1]
del(TaskAsList[i+1])
del(TaskAsList[i])
return TaskAsList[0]
通过尝试这样做,将引发 IndexError。
Traceback (most recent call last): File "<stdin>", line 1, in
<module> File "./task_generator.py", line 30, in getresult
del(TaskAsList[i]) IndexError: list index out of range
谢谢您的帮助!