私は最大のヒープを構築し、要素がある限りmaxを抽出しようとしています。もし私がIndexErrorを返すのでなければ。これは私が実行しようとしているコード:Pythonが例外をキャッチしてもそれらを印刷する
while True:
try:
print hp.extract_max()
except:
break
とextract_max()メソッドで:
def extract_max(self):
if self.size == 0:
return IndexError
item = self.items[0]
self.items[0] = self.items[self.size - 1]
self.heapify_down()
del self.items[len(self.items) - 1]
return item
しかし、コードがあまりにもそれを印刷むしろ、はIndexErrorに遭遇すると破壊されていません。 ループが壊れていない。
<type 'exceptions.IndexError'>
<type 'exceptions.IndexError'>
....
ループを壊すことなく、例外を印刷し続けます。
問題が何ですか?
ここに掲載のコードがどのようなyから不完全または異なるのいずれかであると思われます実行中です。 –