問題タブ [try-except]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 内部関数とメインで try/except/ を適切に使用する方法
私は相対的なpython初心者であり、例外を適切に処理する方法に混乱しています。ばかげた質問をお詫びします。
私の main() では、日付のリストを繰り返し処理し、日付ごとに関数を呼び出して、パブリック Web サーバーから csv ファイルをダウンロードします。明らかな理由で例外を適切にキャッチしたいのですが、特に、関心のあるファイルがいつダウンロード可能になるかわからないためです。私のプログラムは cron ジョブの一部として実行され、可能であればこれらのファイルを 3 時間ごとにダウンロードしようとします。
私が望むのは、日付のリストの最初のファイルをダウンロードすることです。その結果が 404 の場合、プログラムは次のファイルに進むべきではありません。リストの最も古い日付が利用できない場合は、それ以降の他のものも利用可能になります。
次のpython疑似コードがあります。ファイルをダウンロードしようとする関数内に try/except ブロックがありますが、関数内で例外が発生した場合、main() で適切に処理するにはどうすればよいので、次の日付に進むかどうかを決定できます。ダウンロードを実行する関数を作成した理由は、そのコードを後で他のファイル タイプの同じ main() ブロックで再利用したいからです。
python - ネストされたリストを検索し、Python 3.1 で見つかった場合はインデックスを返しますか?
ファイルの入出力を処理するコードを作成しようとしています。プログラムはファイル名の入力を求め、(存在する場合) ファイルを開き、一度に 1 行ずつ読み取ります。各行をより大きな wordList の個別のサブリストに分割します。これはすべて正常に機能します。
私が問題を抱えている部分は、ファイル/リストに各単語が何回出現するかを追跡することになっていることです。また、リストは一意であるはずなので、カウント機能は実際には機能しません。私にはうまくいくように見えるコードブロックがありますが、うまくいきません。
これは、入力ファイルの読み取り、分割、リストへの配置、または少なくとも試行に関連するブロックにすぎません。現時点では、コードを実行すると無限ループが発生し、「You should see this」が無限に出力されます。
2 番目の try:except ループ アウトを実行すると、無限ループは発生しなくなりますが、ファイル内の 2 番目の単語が wordList に見つからない場合に ValueError が返されます (そうあるべきではないため、その前に単語が 1 つしか入力されていないため)。
誰かが私が間違っていることを見ることができますか? 必要に応じて、残りのコードを投稿できます。
python - Try および Except は、sys.exit() を除くすべてのエラーをキャッチします。
関数を作成しましたが、エラーが発生する可能性があります。そのため、例外を使用してすべてのエラーを同じメッセージに一般化したいと考えています。
ただし、この関数には複数のsys.exit()
呼び出しが含まれています。
except
その結果、エラーが発生した場合は、エラーが原因でない限り、コードをハンドラーにジャンプさせたいと考えていますsys.exit()
。どうすればいいですか?
python - 「より大きい」エラーをキャッチしないことを試す/除く
次のコードは機能しません:
入札額が現在のプレーヤーの現金よりも高い場合、エラー メッセージの代わりに成功メッセージが出力されます。
ただし、次のコードは機能し、値が正しいことを示します。
try/except を間違って使用していますか?
python-2.7 - Python 2.7 で、クラス インスタンス メソッドをラップしたり、try/except ブロックで装飾したりするにはどうすればよいですか?
外部クラス インスタンスで呼び出される外部クラス メソッドによってのみ異なる一連のクラス メソッドに、長い try/except1/except2/etc ブロックの繰り返しセットがあります。以下は簡略化されたバージョンです (実際には、私が処理している 4 つの例外と、呼び出されるインスタンス メソッドのみが異なる 8 つのメソッドがあります)。
ネストされた関数、デコレータなどを使用してコードの try: 部分に 2 つのステートメントをラップすることで、このコードを凝縮するさまざまな方法を試してきましたが、他の例を翻訳するのに問題があるという事実のために失敗しているようですこれは、1) 後で except ブロックの 1 つで使用する必要があるクラス インスタンスを作成している、2) インスタンス メソッドを呼び出している、3) インスタンス メソッドの結果を返す必要がある、などの理由によるものです。
functoolsまたは記述子または他の手段から部分的にこれを達成する方法はありますか? 現在、ラッパー関数で使用する整数コードに基づいてインスタンス メソッドを選択する拡張 if/elif ブロックを使用した不格好な実装がありますが、もっと洗練された方法が必要だと考えています。私はPythonに比較的慣れておらず、途方に暮れています...
python - 変数を None として宣言するのを避けるのはそんなに悪いことですか?
私は、一連のエントリの最大値と最小値を見つけるという、Python での古典的な学生の問題の 1 つに取り組んでいます。通常、すべての有効なユーザー エントリをリストに入れることでこれを実行したいと考えていますが、代わりに、ユーザーから取得した各エントリを 1 つずつ評価することになっています。(このクラスでは、リストの前にループを扱います。)
私はリストを使用していないので、変数を None と宣言してから、前者のケースは 1 回しか発生しないため、「最大値は None または最大値 < 新規」と評価することに躊躇しています。代わりに、次の解決策にたどり着くまで min() と max() をいじくり回しました。
ここで質問です: これは try/except の有効な使い方ですか? コメントされた代替案よりもpythonicではありませんか?(確かに、最も Pythonic な方法は min([list]) ですが、ここにいます。)
python - Python コンテキスト マネージャーがクリーンアップされない
コンテキスト マネージャー内で例外を発生させると、クリーンアップ コードが実行されません。例えば:
出力します:
with ステートメントは例外をキャッチしませんが、try/except は適切に例外をキャッチすることに注意してください。with ステートメントがどのように機能するかについて、私が理解できないことはありますか?
ここでコードをフィドルで見ることができます: http://pythonfiddle.com/context-manager-failing
参考までに、OSX mavericks で python 2.7 を実行しています。私は多くの環境で再現できましたが、それが関係しているとは思えません。
python - python xpath IndexError:リストインデックスが範囲外です
URLソースページからxpathで値を取得しています。しかし、これは存在しません。だから私はリクエストを渡し、その値をもう一度取得しようとします:私が試したこと:
実行すると、次のエラーが発生します。
この場合、再度値を取得するようにリクエストするにはどうすればよいですか?
アップデート
このエラーは、xpath が存在しないことを意味します。そのURLにリクエストして、xpathを再度取得したいと思います。