Lao Qi から Python を学び、関数に戻る
関数の基本構造
Python の関数の基本構造:
def 関数名 ([パラメータリスト]):
ステートメント
いくつかのメモ:
•関数名の命名規則は、Python の命名要件に従う必要があります。通常は、小文字、単一のアンダースコア、数字などを組み合わせて使用します。
•def は関数の始まりです。この略語は、明らかに、何かを定義するという意味です。
•関数名の後に括弧が続きます。括弧内にはパラメータリストを含めることも、パラメータを含めないこともできます
。
•括弧の後のコロン
を忘れないでください
• ステートメントは def に対して相対的にインデントされます。Python の習慣に従って、スペースを 4 つインデントします
。
上記の点を詳しく理解するために、簡単な例を見てください:
>>> def name(): #パラメータなしで関数を定義し、この関数をそのまま出力します
... 「qiwsir」を印刷 #シン 4 空のコンパートメント
...
& gt; & gt; & gt; #関数を呼び出し、結果を出力します。 キウシール
>>> def add(x,y): #非常に単純な関数を定義します
... x+y を返します #スペースを 4 つインデントします
...
>>> add(2,3) #関数で 2+3
を計算します
5
なぜですか?ここでのいわゆるパラメータは、本質的には前述の変数と同じものであることを忘れないでください。 Pythonでは事前に変数を宣言する必要はありませんが、言語によっては宣言が必要な場合があります。変数が使用された場合にのみ変数とオブジェクトとの間に対応関係が成立し、それ以外の場合には対応関係が成立しない。オブジェクトにはさまざまなタイプがあります。次に、add(x,y) 関数では、オブジェクトを参照する前に x と y は完全に自由になります。つまり、後続の操作が許可されている限り、任意のオブジェクトを参照できます。エラーが報告されます。
>>> add("qiwsir",4) トレースバック (最後の呼び出し):
ファイル「
ファイル「
TypeError: 'str' オブジェクトと 'int' オブジェクトを連結できません #エラー メッセージを注意深く読むと、エラーが理解できます
Python のポリモーフィックな問題については、今後再び遭遇するでしょう。ここでは、この例でのみ示します。次の点に注意してください: Python はデータ型ではなく、オブジェクトのインターフェイスを作成します。
さらに、代入ステートメントを通じて関数と変数間の参照関係を確立することもできます。
7
ここでは実際にその機能の秘密を解説します。 add(x,y) が実行される前は、コードが実行されるまで、コンピューター内にオブジェクトが作成されます。これは、以前に学習した文字列やリストなどとまったく同じです。型のオブジェクトの場合、add(x,y) を実行すると、add(x,y) のオブジェクトも作成され、変数の結果との参照関係を確立でき、add(x,y) は演算結果を返します。したがって、結果を通じて操作結果を確認できます。
上の段落を読んで少し疲れたり、めまいを感じたりしても、問題ありません。別の面を読んでください。理解できない場合は、やらないでください。研究が進むにつれて、それは理解されるでしょう。
関数の呼び出し
たくさんの関数の書き方についてお話してきましたが、関数を書くと何の役に立つのでしょうか?プログラム内でどのように呼び出すのでしょうか?
なぜ関数を書くのでしょうか?理論的には、関数を使用しなくてもプログラミングは可能です。以前に数値を推測するプログラムを作成したことがあります。もちろん、Python 関数を使用することはカウントされません。現在関数が使用される主な理由は次のとおりです:
1. プログラミングの難しさを軽減するには、通常、大きくて複雑な問題を一連の単純な小さな問題に分解し、その後、小さな問題をさらに小さな問題に分割し続けます。問題が十分に単純になるまで洗練されたら、分割して克服することができます。 。この分割統治のアイデアを実現するには、小さな問題を 1 つずつ分解し、それらをまとめて大きな問題を解決する関数を記述する必要があります。 (分割統治の考え方はプログラミングにおける重要な考え方、いわゆる「分割統治」手法であることに注意してください。)
2. コードの再利用 (チョン、2 つの音)。プログラミングの過程では、同じコードを連続して繰り返すことはタブーであるため、関数を定義して、プログラム内の複数の場所または複数のプログラムで使用することができます。もちろん、「モジュール」については後ほど説明します (インポートされるものについては以前にも触れました)。また、他のプログラマーが使用できるように関数をモジュールに組み込むこともできます。他のプログラマが定義した関数を使用することもできます (以前に使用した import... など、他の人 (Python を作成した人) が作成した関数を使用した関数) を使用することもできます。これにより、作業の重複が回避され、作業効率が向上します。
まだまだ機能は必要なようです。早速、関数がどのように呼び出されるかを見てみましょう。 add(x,y) を例に取ると、基本的な呼び出しメソッドは以前に示しました。さらに、次のようにすることもできます。
... Print "x =", x #パラメータ割り当て結果を出力
... print "y=,y
... return x+y
...
>>> add(10,3) #x=10,y=3
x= 10
y= 3
13
>>> add(x=10,y=3) #同上
x= 10
y= 3
13
>>> add(y=10,x=3) #x=3,y=10
x= 3
y= 10
13
>>> add(3,10) #x=3,y=10
x= 3
y= 10
13
関数を定義するとき、パラメータは以前のように割り当てを待機することも、定義時にデフォルト値を割り当てることもできます。例:
... print "x=,x
... print "y=,y
... return x*y
...
>>> 回(3) x= 3
y= 2
6
>>> 回(x=3) x= 3 y= 2
6
>>
x= 3
y= 4
>>>times("qiwsir") #多態性の特性を再度反映します
x= キウシール
y= 2
ここで読者に質問があります。暇なときに Python を使用して完了してください。2 つの数値の加算、減算、乗算、除算の関数を作成し、これらの関数を使用して簡単な計算を完了してください。
コードを記述する際に注意すべき一般的な事項を次に示します。
1. コロンを忘れないでください。ステートメントの最初の行 (if、while、for などの最初の行) の最後には、必ず「:」を入力してください2. 最初の行から始めます。最上位 (ネストされていない) プログラム コードを識別するには、最初の行から始めます。
3. 対話モードのプロンプトでは空行が重要です。モジュール ファイル内の適合ステートメント内の空白行は、多くの場合無視されます。ただし、対話モードのプロンプトでコードを入力すると、ステートメントは空行で終了します。
4. インデントは一貫している必要があります。ブロックのインデント内にタブとスペースを混在させないでください。
5. while や range の代わりに簡潔な for ループを使用すると、for ループと比較して記述が簡単になり、高速に実行されます。
6. 代入ステートメント内の変数オブジェクトに注意してください。
7. list.append()
など、その場で変更された関数が結果を返すことを期待しないでください。
8. 関数を呼び出すには必ず括弧を使用してください
9. インポートおよびリロードでは拡張子やパスを使用しないでください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go 言語は、クロージャとリフレクションという 2 つの動的関数作成テクノロジを提供します。クロージャを使用すると、クロージャ スコープ内の変数にアクセスでき、リフレクションでは FuncOf 関数を使用して新しい関数を作成できます。これらのテクノロジーは、HTTP ルーターのカスタマイズ、高度にカスタマイズ可能なシステムの実装、プラグイン可能なコンポーネントの構築に役立ちます。

C++ 関数の名前付けでは、読みやすさを向上させ、エラーを減らし、リファクタリングを容易にするために、パラメーターの順序を考慮することが重要です。一般的なパラメータの順序規則には、アクション-オブジェクト、オブジェクト-アクション、意味論的な意味、および標準ライブラリへの準拠が含まれます。最適な順序は、関数の目的、パラメーターの種類、潜在的な混乱、および言語規約によって異なります。

効率的で保守しやすい Java 関数を作成するための鍵は、シンプルに保つことです。意味のある名前を付けてください。特殊な状況に対処します。適切な可視性を使用してください。

1. SUM 関数は、列またはセルのグループ内の数値を合計するために使用されます (例: =SUM(A1:J10))。 2. AVERAGE 関数は、列またはセルのグループ内の数値の平均を計算するために使用されます (例: =AVERAGE(A1:A10))。 3. COUNT 関数。列またはセルのグループ内の数値またはテキストの数をカウントするために使用されます。例: =COUNT(A1:A10)。 4. IF 関数。指定された条件に基づいて論理的な判断を行い、結果を返すために使用されます。対応する結果。

C++ 関数のデフォルト パラメーターの利点には、呼び出しの簡素化、可読性の向上、エラーの回避などがあります。欠点は、柔軟性が限られていることと、名前の制限があることです。可変引数パラメーターの利点には、無制限の柔軟性と動的バインディングが含まれます。欠点としては、複雑さの増大、暗黙的な型変換、デバッグの難しさなどが挙げられます。

C++ で参照型を返す関数の利点は次のとおりです。 パフォーマンスの向上: 参照による受け渡しによりオブジェクトのコピーが回避され、メモリと時間が節約されます。直接変更: 呼び出し元は、返された参照オブジェクトを再割り当てせずに直接変更できます。コードの簡素化: 参照渡しによりコードが簡素化され、追加の代入操作は必要ありません。

カスタム PHP 関数と定義済み関数の違いは次のとおりです。 スコープ: カスタム関数はその定義のスコープに限定されますが、事前定義関数はスクリプト全体からアクセスできます。定義方法: カスタム関数は function キーワードを使用して定義されますが、事前定義関数は PHP カーネルによって定義されます。パラメータの受け渡し: カスタム関数はパラメータを受け取りますが、事前定義された関数はパラメータを必要としない場合があります。拡張性: カスタム関数は必要に応じて作成できますが、事前定義された関数は組み込みで変更できません。

C++ の例外処理は、特定のエラー メッセージ、コンテキスト情報を提供し、エラーの種類に基づいてカスタム アクションを実行するカスタム例外クラスを通じて強化できます。 std::Exception から継承した例外クラスを定義して、特定のエラー情報を提供します。カスタム例外をスローするには、throw キーワードを使用します。 try-catch ブロックでdynamic_castを使用して、キャッチされた例外をカスタム例外タイプに変換します。実際の場合、open_file 関数は FileNotFoundException 例外をスローします。例外をキャッチして処理すると、より具体的なエラー メッセージが表示されます。
