私は、スタッククラスを利用した接頭辞プログラムのために取り組んでいます。しかし、私が例外ハンドラを持っていても、リストではなく整数そのものを参照していても、push()メソッドは整数を呼び出すたびにIndexErrorを発生させています。IndexErrorから整数を呼び出す
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])
エラー:
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
常に、表示されるエラーメッセージの完全なトレースバックを含めてください。 –
スタックを実装する必要はありません。標準のPythonリストには 'append()'と 'pop()'メソッドがあります。 –
@SvenMarnachそれは私自身のスタッククラスを書く必要があるクラスのためです。 – Ganye