我想编一个函数来解决一个数学问题。任务以列表的形式分配给函数(例如[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]
通过尝试此操作,将引发索引器错误。你知道吗
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
谢谢你的帮助!你知道吗
因为你初始化了一个运行到列表第一个初始长度的范围。但是如果你删除了一些索引,你的列表就会变小。。。对于仍为初始长度的跑步
顺便说一下。。。你的单子是由双元素组成的吗?否则你可能会对你在部门的准确度产生麻烦
设置要迭代的范围后,将从列表中删除元素,并更改其大小。程序尝试迭代从一开始就有多少项,但现在已经没有那么多项了。你知道吗
(
del
不是函数。不要用圆括号括住目标。)相关问题 更多 >
编程相关推荐