私はループのために以下を作成して、パンダの価格データをティッカーのリストのために取得する機能を実行しました。基本的に、RemoteDataErrorを取得して3回の試行後にそのエラーを無視すると、ループは関数を再実行します。Python - ループのためのよりよい解決策 - 3回の試行の後にエラーを無視してそのエラーを無視して再実行
以下のforループはこの目的のためにうまくいきますが、forループの外側の試行回数にwhileループを置くように、以下のループからの試行回数を定義することができないため、 。試行回数= 0の変数を定義しようとしましたが、再実行するたびに1回の試行が追加されます。論理は試行+ = 1です。試行が3に達した場合は、続行を使用してエラーを無視します。しかし、それは動作しませんでした。おそらく、私は何かを間違って設定したでしょう。
for ticker in tickers:
print(ticker)
try:
get_price_for_ticker()
except RemoteDataError:
print('No information for {}'.format(ticker))
try:
get_price_for_ticker()
print('Got data')
except RemoteDataError:
print('1st with no data')
try:
get_price_for_ticker()
print('Got data')
except RemoteDataError:
print('2nd with no data')
try:
get_price_for_ticker()
print('Got data')
except RemoteDataError:
print('3rd with no data (should have no data in the database)')
continue
もっと良い方法がありますか?
あなたは '試行'変数を使ったコードを表示する必要があります。そのコードで問題が発生しているかどうかを理解するだけです。もちろん 'attempts'を組み込む方法は、あなたは最高ではないにしても、ここで提供しています。 –