-
Pythonの関数にキーワードパラメータを渡す方法は?
** kwargsの二重アスタリスク形式は、キーワード付きの可変長引数ディクショナリを関数に渡すために使用されます。繰り返しになりますが、2つのアスタリスク(**)は重要であり、kwargsという単語とともに、可変長のキーワード付き引数の辞書があることを示しています。 * argsと同様に、** kwargsは、提供したい引数をいくつでも取ることができます。ただし、**kwargsはキーワードを割り当てる必要があるという点で*argsとは異なります。 例 def print_kwargs(**kwargs): print(kwargs) print_k
-
Pythonで引数リストを使用して関数を呼び出す方法は?
def baz1(foo, *args): argsの横にある*は、「指定された残りのパラメーターを取得して、argsというリストに入れる」ことを意味します。 行内: foo(*args) ここでのargsの横の*は、「argsと呼ばれるこのリストを取得し、残りのパラメーターに「アンラップ」することを意味します。 foo2では、リストは明示的に渡されますが、両方のラッパーでargsにはリスト[1,2,3]が含まれています。 def baz1(foo, *args): # with star foo(*args) def baz2(foo, arg
-
Pythonのアサーションとは何ですか?それらはどのように実行されますか?
アサーションは、プログラムのテストが終了したときの健全性テストです。 アサーションは、raise-ifステートメント(より正確には、raise-if-notステートメント)に似ています。式がテストされ、結果がfalseであることが判明した場合、例外が発生します。アサーションは、assertステートメントを使用して実行されます。 プログラマーは、有効な入力をチェックするために関数の開始時にアサーションを配置し、有効な出力をチェックするために関数呼び出しの後にアサーションを配置することがよくあります。以下のassertステートメントを使用する 例 x,y = 8,8 assert x<y,
-
C拡張機能からPython例外を発生させる方法は?
上記のモジュールでは、次のsetup.pyスクリプトを準備する必要があります- from distutils.core import setup, Extension setup(name='helloworld', version='1.0', \ ext_modules=[Extension('helloworld', ['hello.c'])]) ここで、次のコマンドを使用します $ python setup.py install 拡張機能をインストールすると、Pythonスクリプトtest.pyでその拡張機能をインポー
-
Pythonの例外/エラー階層を出力する方法は?
inspectモジュールをインポートし、特にgetclasstree()関数を使用して、Pythonの例外/エラー階層を出力します。 このコードは、指定された例外クラスのリストをネストされたリストの階層に配置して出力します。出力に示されているように、継承ツリーによって__subclasses __()を再帰的に調べます。 例 import inspect print "The class hierarchy for built-in exceptions is:" inspect.getclasstree(inspect.getmro(BaseException)) def
-
Python変数が存在するかどうかを確認するにはどうすればよいですか?
次のコードを使用して、Pythonに変数が存在するかどうかを確認します。 例 x =10 class foo: g = 'rt' def bar(self): m=6 print (locals()) if 'm' in locals(): print ('m is local variable') else: print ('m is not a local variable') f = foo() f.bar() print (globals()) if hasattr(f, 'g'): print ('
-
プログラマーが提起する標準のPython例外リストはどこにありますか?
Pythonにあるすべての標準例外を知りたいです。標準のPython例外のリストはどこにありますか? プログラマー向けの標準のPython例外リストは、で入手できます。 https://docs.python.org/3/library/exceptions.html
-
リスト内包表記でPython例外をキャッチする方法は?
Pythonには例外を処理または無視できる組み込み関数がないため、リスト内包には1つ以上の式が含まれているため、リスト内包のすべての例外を処理することはできません。ステートメントのみが例外をキャッチ/無視/処理できます。 例外が発生しやすい部分式の評価を関数に委任することは、実行可能な回避策の1つです。その他は、例外を発生させる可能性のある値のチェックです。 この問題を処理する方法は、次のコードを使用することです。 例 foo = (5,7,1,0,9) def bar(self): try: return [1/i for i in foo] except ZeroDivisionErro
-
ループ内でPython例外を処理する方法は?
次のように書き直すことで、コードの例外を作成できます a=[] foo = 'redbullz' try: for i in foo: a.append(i) print a[8] except Exception as e: print e 次の出力が得られます list index out of range Process finished with exit code 0
-
例外を無視してPythonで続行するにはどうすればよいですか?
次の方法で例外を処理せずにtry-exceptブロックを実行できます。 try: 1/0 except: pass および try: 1/0 except Exception: pass 最初のケースでは、bareexcept:を使用することは、except BaseException:を使用することと似ています。これは、exceptions.Exceptionではなくexceptions.BaseExceptionから直接派生するKeyboardInterrupt、SystemExit、およびそのようなエラーもキャッチします。 2番目のケースでは、上記のものはキャッチされません。 pa
-
Pythonの「eとしての例外を除く」と「例外としてのeを除く」の違いは何ですか?
例外ステートメントで、、およびasを使用する場合の違いは、次のとおりです。 、、およびasはどちらも機能的には同じです。ただし、それらの使用は、次のようにPythonのバージョンによって異なります。 Python 2.5以前のバージョンでは、「as」はサポートされていないため、「comma」の使用をお勧めします。 Python 2.6以降のバージョンでは、「comma」と「as」の両方を使用できます。ただし、Python 3.xからは、変数に例外を割り当てるために「as」が必要です。 Python 2.6以降、「as」を使用すると、以下に示すように、単一の例外ブロックで複数の例外をキャ
-
Pythonの予期しないインデントとは何ですか?
Pythonはインデントを主張するだけでなく、一貫したインデントを主張します。 1行を4スペースインデントし、次の行を3(または5、6、。)インデントすると、Pythonで予期しないインデントのエラーが発生します。 指定されたコードでは、3行目は2行目よりも先頭に多くのスペースがあります。ブロック内のコードのすべての行は、まったく同じ数のスペースで始まる必要があります。両方のprintステートメントは、同じ数のスペースでインデントする必要があります。したがって、予期しないインデントが表示されない修正されたコードは次のとおりです。 def a(): print &q
-
Pythonでの例外処理とは何ですか?
エラーとは、構文エラーのように、コンパイル時にプログラムで問題が発生することです。 たとえば。 'abe' = 5 出力 SyntaxError: can't assign to literal ステートメントまたは式が構文的に正しい場合でも、それを実行しようとするとエラーが発生する可能性があります。実行中に検出されたエラーは例外と呼ばれ、必ずしも致命的とは限りません。例外が処理されない場合、コードの実行時または実行時にエラーメッセージが表示されます。 一般に、Pythonスクリプトで処理できないエラーが発生すると、例外が発生し、例外オブジェクトが作成されます。
-
Pythonのステートメントを除いて、最後にtryを説明します。
Pythonでの例外処理では、tryステートメントとexceptステートメントを使用して、例外をキャッチして処理します。 try句内のコードは、ステートメントごとに実行されます。 例外が発生した場合、残りのtryブロックはスキップされ、except句が実行されます。 例 try: 'apple' + 6 except Exception: print "Cannot concatenate 'str' and 'int' objects" 出力 Cannot concatenate 'str' and '
-
Pythonでのassertステートメントの使用は何ですか?
assertステートメントの構文は次のとおりです。 assert <some_test>, <message>をアサートします 上記の行は次のように読み取られます。がFalseと評価された場合、例外が発生し、が出力されます。 コードブロックまたは式をテストする場合は、assertキーワードの後に配置します。テストに合格するか、式がtrueと評価された場合、何も起こりません。ただし、テストが失敗した場合、または式がfalseと評価された場合、AssertionErrorが発生し、メッセージが出力または評価されます。 Assertステートメントは、ユーザー定義の制
-
Pythonで例外を処理する方法は?
Pythonで例外を処理する最も簡単な方法は、「try-except」ブロックを使用することです。 例 try: fob = open("test.txt", "r") fob.write("This is my test file for exception handling!!") except IOError: print "Error: can\'t find the file or read data" else: print "Write operation is performed
-
PythonでKeyError例外をキャッチする方法は?
辞書のキーとして値が見つからない場合、KeyErrorが発生します。指定されたコードは、例外をキャッチしてそのタイプを見つけるために次のように書き直されます。 例 import sys try: s = {'a':5, 'b':7}['c'] except: print (sys.exc_info()) 出力 (<type 'exceptions.KeyError'>, KeyError('c',), <traceback object at 0x0000000003203748&g
-
Pythonで部分文字列が別の文字列に含まれているかどうかを確認する方法
Pythonには、文字列が別の文字列のサブ文字列であるかどうかを検索するためのキーワード「in」があります。例 print('ello' in 'hello world') 出力 True サブストリングの最初のインデックスも必要な場合は、find(substr)を使用してインデックスを検索できます。このメソッドが-1を返す場合は、文字列に部分文字列が存在しないことを意味します。たとえば、 print("hello world".find('ello')) 出力 1 文字列「ハリーポッター:炎の
-
Pythonでの例外処理のベストプラクティスは何ですか?
Pythonでの例外処理のベストプラクティスのいくつかを以下に示します。 例外は、エラーステータスコードを返すよりも優れています。言語コア全体と標準ライブラリが例外をスローするため、Pythonで例外を処理する必要があります。エレガントに処理された例外は、エラーコードやトレースバックよりもいつでも望ましいです。 フロー制御に例外を使用しないのが賢明です。 例外は、通常の実行の一部ではない例外的な状況で発生します。 パターンが見つからない場合は-1を返す文字列の「find」を検討してください。ただし、文字列の終わりを超えてインデックスを作成すると、例外が発生します。文字列が見つからないの
-
Pythonで1行(ブロックを除く)で複数の例外をキャッチするにはどうすればよいですか?
次のように、1つの例外ブロックで複数の例外をキャッチします たとえば、except句では、複数の例外を括弧で囲まれたタプルとして指定できます。 try: raise_certain_errors(): except (CertainError1, CertainError2,…) as e: handle_error() 例外をコンマで変数から分離することは、Python 2.6および2.7でも機能しますが、非推奨になり、Python3では機能しません。ここで、「as」を使用する必要があります。 エラーオブジェクトを名前に割り当てるためにコンマが使用されるため、括弧が必要で