Ich arbeite an einem Infix-Präfix-Programm mit einer Stack-Klasse. Die Methode push() löst jedoch immer dann einen IndexError aus, wenn ich eine Ganzzahl aufrufe, obwohl ich einen Ausnahme-Handler habe und auf die Ganzzahl selbst, nicht auf eine Liste, referenziere.IndexError von Aufruf einer Integer
stack.py:
class stack():
def __init__(self,n):
self.n = n
self.top = -1
self.stack = [""] * n
#...
def push(self,c):
try:
print(self.top)
self.top += 1
self.stack[self.top] = c
except IndexError:
print("Stack is full.")
pip.py:
def toPrefix(input):
instack = stack(15)
prefix = ""
for i in range(0,len(input)):
for c in range(0,len(input[i])):
if(input[i][c].isalpha()):
instack.push(input[i][c])
Fehler:
Traceback (most recent call last):
File "<string>", line 247, in run_nodebug
File "P:\Scripts\Python\ascl-pip.py", line 42, in <module>
toPrefix(infix)
File "P:\Scripts\Python\ascl-pip.py", line 37, in toPrefix
instack.push(input[i][c])
File "P:\Scripts\Python\stack.py", line 36, in push
print(self.top)
IndexError: list assignment index out of range
Bitte immer die vollständige Traceback der Fehlermeldung, die Sie erhalten. –
Und Sie müssen keinen Stapel implementieren. Standard-Python-Listen haben 'append()' und 'pop()' Methoden. –
@SvenMarnach es ist für eine Klasse, die erfordert, dass ich meine eigene Stack-Klasse schreibe. – Ganye