Pythonのノート - 機能

前:

Pythonは、非常に柔軟な機能を定義していないだけで、それは便利な機能の多くは、直接呼び出すことができます自分自身を構築しました。

それはとても基本的な事柄の多くは、あなた自身の印象を深めるために、主に、それを記録し、白であるため、ここでは自分自身の学習の内容についての記録は、あります。

以下からの情報遼雪峰の先生の公式サイトだけでなく、教育ビデオビープ駅。

 

関数を呼び出します。

関数を呼び出すには、あなたは、Pythonの公式サイトから直接ドキュメントを表示することができ、名前と機能のパラメータを知っておく必要があります。http://docs.python.org/3/library/functions.html#abs

 

関数を呼び出すことは嫌いでない場合、パラメータの数が渡され、エラーになります、例えば:

データ型変換

Pythonは組み込み関数さらに、INT()関数のような一般的なデータ型変換関数は、他のデータ型に変換することができる含む整数です。

関数名を使用すると、「エイリアス」から、この機能に相当し、変数に割り当てられている機能名を置くことができ、実際に関数オブジェクトへの参照です。

この変数は、ポインティングABSのようなものです、それは通過関数を呼び出すことができるように、ABS。

 

定義された関数:

Pythonでは、関数が順次DEF文を定義する関数名、丸括弧、大括弧および結腸のパラメータを記述します、その後、returnステートメントによって返さ後退、関数の戻り値で機能ブロック体を書き込みます。

例えば、我々はmy_abs例の絶対値の関数をカスタマイズします。

 

また、書くことができます

 

my_abs保存()関数は1.pyファイルとして定義され、それが可能なファイルPythonインタプリタのカレントディレクトリで起動 1から輸入my_absがmy_abs()関数で、ノートのファイル名(除くをインポートすると、。 PY拡張):

 

空の機能:

あなたは何もしないの定義は空の関数である必要がある場合は、パスステートメントを使用することができます。実際には、パスとは、例えば、今のコードの機能を作成する方法を考え出したていない、プレースホルダとして使用することができ、あなたが最初のコードが稼働できるようにすることを、パスを置くことができます。

パスは、他の文で使用することができ、パスの欠如、などの文法の誤り、で実行するコード:

 

パラメータを確認してください:

あなたが関数を呼び出し、そうでない場合はパラメータの数とき、Pythonインタプリタは自動的にそれをチェックアウトし、TypeError例外がスローされます。

パラメータの型が正しくない場合は、Pythonインタプリタは、私たちがチェック手助けすることはできません。異なるmy_absと組み込み関数ABSをお試しください:

組み込み関数ABS、着信不適切なパラメータは、エラーのパラメータをチェックし、文はエラーにつながる場合、我々は、何のパラメータチェックを定義されていないmy_absすると、エラーメッセージと腹筋は同じではありません。したがって、この関数の定義は完璧ではありません。

レッツ・チェンジmy_absの定義、整数のみ可能と引数の浮動小数点型を、パラメータの種類にチェックを行います。データ型チェックは、内蔵可能な関数でisinstance()の実装を:

 

複数の値を返します:

座標は、変位及び角度与えられ、新しい計算調整することができ、インポートステートメントを導入する数学演算パッケージを示し、その後のコード参照数学バッグ罪、COS及び機能等を可能にします。

その後、我々は同時に、戻り値を取得できます。

 

戻り値はタプルです!Pythonの戻り複数の値が実際のタプルを返すが、書き込みをより便利ので、ただし、文法には、返しタプル括弧を省略してもよく、複数の変数を同時にタプルを受け取ることができる、場所によって割り当てられた値に対応。これは単なる幻想である、Pythonの関数は、単一の値の遺骨を返します。

 

 

関数のパラメータ

Pythonの関数の定義は非常に単純ですが、柔軟性は非常に大きいです。必須パラメータの通常の定義に加えて、デフォルトのパラメータは、可変パラメータとキーワードパラメータを使用することができる、それだけでなく、複雑なパラメータを扱うことができる機能インタフェース定義するように、また、呼び出し元のコードを簡素化することができます。

位置パラメータ

私たちは、Xパラメータは、位置パラメータであり、パワー(x)関数について計算関数X 2を書くためにここにいます。

我々は、電力機能を呼び出すと、それだけで一つの引数とXに合格している必要があります。

 

Xのn乗を計算するために使用されることをどのように行うには?だから我々は、電源(X)を置くことができることを(X、n)のパワーに変更:

パラメータX及びn割り当てられた順序値に応じて2つの位置を渡し、関数が呼び出され、X及びnは、これら2つのパラメータは、位置パラメータは、電力は、(X、n)は関数は、2つのパラメータを取ります。

 

デフォルトパラメータ

新しいパワー(X、n)は関数定義は問題ありませんが、私たちは通常呼び出すことはできませんので、パラメータの不足の古いコードが得られたパラメータを、追加したので、古い呼び出し元のコードは失敗します。

この時、便利なラフト上のデフォルトパラメータ。Pythonのエラーメッセージは明確である:関数電力()位置パラメータnの欠如を呼び出します。算出したX 2は、書くことができるよう:

我々は、電源(5、2)を呼び出すのと同じ電源(5)を呼び出し、このようでは。

 

あなたはデフォルトのパラメータを設定した場合、にはいくつかのポイントがあるノートは

一つは、それ以外のPythonインタプリタは、(デフォルトパラメータが必須パラメータの前に配置することができない理由を考える)文句を言うだろう、デフォルトパラメータが続き、最初の必須パラメータです。

第二には、関数は複数のパラメータを有する場合には、大きな変化の前に置かれたパラメータは、パラメータの小さな変化を元に戻します。パラメータの小さな変化は、デフォルトパラメータとして使用することができます。

 

最大の利益のデフォルトの関数は、関数を呼び出すことの難しさを軽減することです

例えば、我々は今、二つのパラメータの名前と性別を渡す必要があります。このように、登録ステム()関数を呼び出すことは2つだけの引数が必要です。

 

Pythonの関数が定義された場合、パラメータLのデフォルト値は、算出した、すなわち、[]、デフォルトパラメータLは、Lがコンテンツを変更された場合、オブジェクト[]にポイントは、すべての時間関数は、呼び出されることも可変であるため、次の呼び出し、デフォルトのパラメータが変更され、もはや関数定義[] A。

注:デフォルトのパラメータは、同じオブジェクトを指している必要があります!

 

:私たちは、このような同じ目的を達成するために使用することができますなし

作成されると不変オブジェクトは、オブジェクト内のデータは、このよう起因によるデータの変更にエラーを低減する、修正することができません。

 

可変パラメータ

数学的名称例えば、A2 + B2 + C2 +計算し、A、B、C ......数の集合を所与.......

この関数を定義するために、我々は、入力したパラメータを決定する必要があります。パラメータの不確実性の数以来、最初に考えたのは、渡されたリストやタプルのように、B、C ......を置くことができます。

場合は、リストやタプルとの最初の呼び出し:(比較のための正しいエラー)

 

私たちは、可変パラメータ関数のパラメータに変更されました:

私達はちょうどそれが全く異なる表現しないという意味、アスタリスクの前にパラメータを追加しました。タプル数であるパラメータ関数内受信関数は0パラメータを含む、任意の数のパラメータを渡すことができる、と呼ばれています。

 

キーワード引数

キーワード引数の使用は何ですか?これは、関数の機能を拡張することができます。例えば、人物の機能で、私たちは、呼び出し側が追加パラメータを提供する意思がある場合は、受信した名前とこれら2つのパラメータの時代は、しかし、我々が受信できるようにすることができます。あなたが必要としているユーザ名と年齢に加えて、ユーザー登録機能を作っている想像してみて、他のオプションは、利用可能な登録要件を満たすことができるようになります関数を定義するためのキーワードパラメータを使用しています。

 

キーワードパラメータを使用すると、0またはパラメータ名パラメータの任意の数を含む渡すことができ、これらのパラメータは、自動的に辞書の変換のキーワードパラメータを渡すために、そして、辞書機能内部のキーワードとして組み立てられています。

簡素化された文言:

これはキロワットに変わるパラメータで関数に渡されるすべてのキーと値キーワード引数の余分**余分辞書**キロワットを表し、キロワットが得コピーに辞書、辞書のキロワットの注目を集めるだろう余分ではなく、これは、余分な外部関数に影響します。

 

名前付き引数のキーワード

呼び出し側のキーワードパラメータについては、関数のパラメータは、任意のキーワードを無制限に渡すことができます。最後に渡されたものにしたように、我々は内の関数に必要なキロワットをチェックします。

あなたが名前のキーワード引数を制限したい場合は、名前のキーを使用することができますワードパラメータを、例えば、唯一の都市とキーワード引数としての仕事を受けます。**キロワット異なるキーワードおよびパラメータ、名前のキーワード引数は*、*後者の引数はキーワード引数の名前とみなされ、特別な区切りが必要です。この機能は、次のように定義されています。

関数が可変のパラメータで定義されている場合は、もはや後に名前のキーワード引数を踏襲していない特殊な区切りが必要*:

名前付きのキーワード引数はパラメータ名に渡され、これらの異なるパラメータの場所にする必要があります。あなたは、パラメータ名を渡さない場合、呼び出しが与えられます。

都市と仕事を呼び出すときに不足パラメータ名のためには、Pythonはこれら四つのパラメータ通訳位置パラメータとして扱われますが、人()関数は、2つだけの位置パラメータを受け付けます。お電話の際は、キーワード引数という名前の都市は、デフォルト値を持っているので、名前付きのキーワード引数は、市内のパラメータを渡さない、コールを簡素化し、デフォルト値を持つことができます。

名前のキーワード引数を使用する場合は、何の変数パラメータが存在しない場合、特別なセパレータとして*を追加する必要がある、に特別な注意を払います。*がない場合には、Pythonインタプリタは、場所と名前のキーワード引数を認識しません。

パラメータの組み合わせ

Pythonでの関数を定義して、必須パラメータ、デフォルトパラメータ、変数、パラメータ、キーワード、および名前のキーワードパラメータすることができ、これらの5つのパラメータを組み合わせて使用​​することができます。ただし、パラメータの順序が定義されなければならない:必須パラメータ、デフォルトのパラメータ、変数、パラメータ、名前のキーワード引数とキーワード引数。

注:あなたは5つのパラメータまでの組み合わせは、あまりにも多くの組み合わせ、または貧弱な明瞭度関数インタフェースを使用していないことができますが。

そのような関数呼出し、Pythonのインタープリタの位置を自動的に渡されたパラメータと対応するパラメータ名パラメータに応じて、いくつかのパラメータを含む関数の定義、など。

タプルとdictのことで、あなたはまた、上記の関数を呼び出すことができます。

 

再帰関数:

関数内、あなたは他の関数を呼び出すことができます。関数が自分自身の中に自分自身を呼び出す場合は、この関数は再帰関数です。

!例えば、我々は階乗N = 1×2×3×... XNを計算し、機能事実(n)が表すと、それを見ることができます。

事実(N)= N!= 1×2×3×... X(N-1)XN =(N-1)!XN =事実(N-1)XN。したがって、実際には(N)NX事実(N-1)として表すことができる、N = 1は、唯一の特別な処理を必要とします。

だから、実際には、(n)は、再帰的な方法で書かれています:

利点は、単純な再帰関数、明確なロジックを定義することです。理論的には、すべての再帰関数は、循環方式で書き込むことができますが、良いとして再帰ループロジックが明確でないとして。

 

再帰関数は、スタックオーバーフローを避けるように注意する必要があります。スタックのサイズは無制限ではないので、再帰呼び出しの数があまりにも多くのスタックオーバーフローにつながります。

 

再帰呼び出しスタックオーバーフローがによって解決される末尾再帰の最適化、末尾再帰関数が戻るには、自分自身を自分自身を呼び出し、そして時に、return文が式を含めることはできません、手段。このように、コンパイラまたはあなたは、最適化末尾再帰に自分自身への再帰呼び出しを行うことができ、インタプリタ、唯一のスタックフレームを占有回数に関係なく、スタックオーバーフローの状況が発生しません。

 

末尾再帰的方法を変更するためには、もう少しコードを必要とする各工程の生成物は、再帰関数に渡さなければならない主です。

リターンfact_iter(NUM - 1、NUM *製品) を返すだけ再帰関数自体 NUM -関数呼び出しは関数呼び出しには影響しません前に1とnumが*製品が評価されます。

おすすめ

転載: www.cnblogs.com/qi-yuan/p/12629755.html