数学的なタスクを解く関数をプログラムしたいと考えています。タスクは関数にリスト (例: [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
ご協力ありがとうございました!