リスト内包表記のPythonforループをどのように説明しますか?
リスト内包表記は、既存のリストに基づいてリストを作成するための簡潔な方法を提供します。リスト内包表記を使用する場合、文字列やタプルなど、反復可能なものを利用してリストを作成できます。リスト内包表記は、式とそれに続く句のaを含む反復可能オブジェクトで構成されます。この後に、追加のfor句またはif句を続けることができます。
hello_letters = [letter for letter in 'hello'] print(hello_letters)
['h', 'e', 'l', 'l', 'o']
string helloは反復可能であり、このループが反復するたびに文字に新しい値が割り当てられます。このリスト内包表記は、次と同等です。
hello_letters = [] for letter in 'hello': hello_letters.append(letter)
hello_letters = [letter for letter in 'hello' if letter != 'l'] print(hello_letters)
['h', 'e', 'o']
squares = [i ** 2 for i in range(1, 6)] print(squares)
[1, 4, 9, 16, 25]
-
例外がPythonのオブジェクトであることをどのように説明しますか?
はい、指定されたコードでは「err」は例外オブジェクトです。 Pythonでは、すべてがオブジェクトです。そして、すべてのオブジェクトには属性とメソッドがあります。したがって、リスト、関数、タプルなどのような例外もオブジェクトです。したがって、例外にも他のオブジェクトと同様の属性があります。これらの属性は、次のように設定およびアクセスできます。基本クラスの例外があり、他のほとんどすべての例外はサブクラスです。 eが例外オブジェクトの場合、e.argsとe.messageがその属性です。 現在のPython実装では、例外はタイプ、値、トレースバックの3つの部分で構成されています。 sysモジ
-
リスト内包表記でPython例外をキャッチする方法は?
Pythonには例外を処理または無視できる組み込み関数がないため、リスト内包には1つ以上の式が含まれているため、リスト内包のすべての例外を処理することはできません。ステートメントのみが例外をキャッチ/無視/処理できます。 例外が発生しやすい部分式の評価を関数に委任することは、実行可能な回避策の1つです。その他は、例外を発生させる可能性のある値のチェックです。 この問題を処理する方法は、次のコードを使用することです。 例 foo = (5,7,1,0,9) def bar(self): try: return [1/i for i in foo] except ZeroDivisionErro