Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでリストの空の例外を処理するための最良の方法は何ですか?


リストは要素の順序付けられたシーケンスです。リスト内の個々の要素は、0から始まり、長さ-1までのインデックスを使用してアクセスされます。インデックスがこの範囲を超えると、IndexError例外が発生します。

次の例では、無限ループを使用して、一度に1つの要素をポップします。最後の要素がポップされた後でもループが実行しようとすると、IndexError例外が発生します。メカニズムを除いて、tryを使用してトラップします。

a=[1,2,3]
while True:
  try:
    b=a.pop()
    print (b)
  except (IndexError):
    break

  1. Pythonの「eとしての例外を除く」と「例外としてのeを除く」の違いは何ですか?

    例外ステートメントで、、およびasを使用する場合の違いは、次のとおりです。 、、およびasはどちらも機能的には同じです。ただし、それらの使用は、次のようにPythonのバージョンによって異なります。 Python 2.5以前のバージョンでは、「as」はサポートされていないため、「comma」の使用をお勧めします。 Python 2.6以降のバージョンでは、「comma」と「as」の両方を使用できます。ただし、Python 3.xからは、変数に例外を割り当てるために「as」が必要です。 Python 2.6以降、「as」を使用すると、以下に示すように、単一の例外ブロックで複数の例外をキャ

  2. リスト内包表記でPython例外をキャッチする方法は?

    Pythonには例外を処理または無視できる組み込み関数がないため、リスト内包には1つ以上の式が含まれているため、リスト内包のすべての例外を処理することはできません。ステートメントのみが例外をキャッチ/無視/処理できます。 例外が発生しやすい部分式の評価を関数に委任することは、実行可能な回避策の1つです。その他は、例外を発生させる可能性のある値のチェックです。 この問題を処理する方法は、次のコードを使用することです。 例 foo = (5,7,1,0,9) def bar(self): try: return [1/i for i in foo] except ZeroDivisionErro