導入
この関数は、コードの重複を減らし、複雑なタスクを整理することを目的とした命令を含む呼び出し可能なユニットです。 void 関数 (戻り値なし) と値を返す関数の 2 種類があります。
これは Python の関数の基本構造です。
def function_name(args): function body
これは、Python の void 関数 (戻り値なし) の例です。
# create a function def hello(): print("hello!") # call the function hello()
出力
hello!
上記のコードに基づいて、hello() という関数が作成されます。関数名に続けて括弧 () を指定することで関数を呼び出します。
これは戻り値を使用した関数の例です。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
出力
6
上記のコードに基づいて、2 つの数値を合計する add() という関数が作成されます。 add() 関数の戻り値は、結果変数内に格納されます。
戻り値関数を使用する場合は、戻り値が使用されていることを確認してください。
引数とキーワード引数
Python の関数は複数の引数を動的に受け取ることができます。関数に複数の引数を実装するには、2 つの方法があります。
引数: 複数の引数は、キーワードを指定せずに関数に実装されます。引数は *args.
を使用して実装できます。
キーワード引数: 複数の引数は、指定されたキーワードを使用して関数に実装されます。キーワード引数は **kwargs.
を使用して実装できます。
引数とキーワード引数は両方とも、関数内の引数定義の最後の位置に配置する必要があります。
これは、数値の合計を動的に計算する引数アプローチを使用した複数の引数の実装の例です。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
出力
3 6 24
上記のコードに基づいて、異なる数のパラメータを指定して sum() 関数を呼び出すことができます。
これは、キーワード引数アプローチを使用した複数の引数の実装の例です。
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
出力
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
上記のコードに基づいて、display_info() 関数を異なる数のパラメータで呼び出すことができます。 **kwargs を使用すると、パラメータをキーワードで定義できます。
引数とキーワード引数は両方とも一緒に使用できます。これは一例です。
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
出力
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
再帰関数
再帰関数は、タスクを完了するときに自分自身を呼び出す関数です。再帰関数は、階乗数、フィボナッチ数列などを含む多くの問題を解決できます。
再帰関数には 2 つの主要なコンポーネントがあります:
- 基本ケース: 基本ケースは、関数がいつ停止されるかを定義します。
- 再帰関係: 再帰関係は関数の再帰プロセスを定義します。
この例では、階乗計算は再帰関数を使用して実装されています。
def function_name(args): function body
出力
# create a function def hello(): print("hello!") # call the function hello()
factorial() 関数を詳しく見てみましょう。この関数には 2 つのコンポーネントが関係しています:
基本ケース: n の値が 0 または 1 に等しい場合、関数の実行は終了します。
再帰関係: n の値が 1 より大きい場合に関数が実行されます。
hello!
factorial() 関数を下の図に示します。
ラムダ
ラムダは匿名関数です。ラムダには、一般的な関数と同様に、多くの引数を含めることができます。ラムダ関数は、値を直接返す小さな関数の作成に適しています。
これは sum() 関数の例です。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
これは、2 つの数値を合計するラムダ関数の例です。ラムダ関数は、sum_func.
という変数内に保存されます。
6
ラムダ関数を使用するには、変数名で関数を呼び出します。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
マップとフィルター
マップ機能
map() 関数は、リスト内の各項目に対して提供されたコールバック関数を実行します。
これは、各数値を 3 で乗算する map() 関数の例です。
3 6 24
出力
def display_info(name,**kwargs): print("========") print(f"name: {name}") print("other informations") for k, val in kwargs.items(): print(f"{k}: {val}") print("========") display_info("john",job="programmer",company="acme inc") display_info("doe",job="programmer",company="acme inc",skills="go,java,php")
上記のコードに基づくと、triple() 関数は、map() 関数のコールバックとして機能します。つまり、数値リスト内の項目ごとに Triple() 関数が呼び出されます。次に、map() 関数の結果がリストに変換され、result という変数内に格納されます。
上記の例は、ラムダ関数を使用して簡略化できます。
======== name: john other informations job: programmer company: acme inc ======== ======== name: doe other informations job: programmer company: acme inc skills: go,java,php ========
出力
def display(*args,**kwargs): print("===========") print("items") for arg in args: print(arg) print("other information") for k, val in kwargs.items(): print(f"{k}: {val}") print("===========") display("apple","coffee","milk",payment="cash") display("TV","Camera",payment="cash",delivery="express")
フィルター機能
filter() 関数は、指定されたコールバック関数に基づいてリスト内の項目を選択します。 filter() 関数は、提供されたコールバック関数を使用してリスト内の項目をフィルター処理するのに適しています。 filter() 関数には、ブール値を返すコールバック関数が必要です。
これは、リスト内の偶数のみを選択する filter() 関数の例です。
=========== items apple coffee milk other information payment: cash =========== =========== items TV Camera other information payment: cash delivery: express ===========
出力
def factorial(n): if n == 0 or n == 1: return 1 else: return n * factorial(n-1) # call the function result = factorial(5) print(result)
上記のコードに基づいて、filter() 関数は is_even() をコールバック関数として使用して、リストから偶数を選択します。
この例は、ラムダ関数を使用して簡略化できます。
120
出力
def function_name(args): function body
例 - 重複したコードを削除する
この機能は重複したコードを削除するために使用できます。たとえば、register() と login() という 2 つの関数があります。どちらの関数も検証プロセスを使用しています。
# create a function def hello(): print("hello!") # call the function hello()
検証プロセスに重複したコードがあります。これらの重複を削除するには、検証プロセスを別の関数でラップします。
hello!
validate() 関数は、register() 関数とlogin() 関数内で使用できます。
# create a function with return value def add(a,b): return a + b result = add(2,4) print(result)
上記のコードに基づくと、追加の検証ルールが更新された場合に、検証ルールを 1 か所 (validate() 関数内) で更新できるため、コードはよりクリーンで変更が容易になります。
ヒント
これらは、Python で関数を操作する際の重要なヒントです。
関数は単一のタスクを完了する必要があります。複数のタスクが必要な場合は、他のタスク用に別の関数を作成します。
関数の引数の最大数は 3 です。引数が 3 つを超えると思われる場合は、関数の引数に専用のデータ オブジェクトを使用することを検討してください。
関数の引数の最大数については議論の余地があるようです。
これは、引数を使用した create_account() 関数の例です。
6
create_account() 関数は、よりクリーンなコードのためにデータ オブジェクトを使用するように変更できます。
def sum(*args): result = 0 for arg in args: result += arg return result print(sum(1,2)) print(sum(1,2,3)) print(sum(1,2,3,4,5,4,3,2))
- ドキュメントを使用して関数の説明を説明します。ドキュメントは「"」構文を使用して追加できます。
これは関数内でドキュメントを使用する例です。
3 6 24
情報源
- 関数の引数とキーワード引数
- 再帰関数の図
この記事が Python の学習に役立つことを願っています。ご意見がございましたら、コメント欄にご記入ください。
以上がPython チュートリアル - 関数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Tomergelistsinpython、あなたはオペレーター、extendmethod、listcomfulting、olitertools.chain、それぞれの特異的advantages:1)operatorissimplebutlessforlargelist;

Python 3では、2つのリストをさまざまな方法で接続できます。1)小さなリストに適したオペレーターを使用しますが、大きなリストには非効率的です。 2)メモリ効率が高い大規模なリストに適した拡張方法を使用しますが、元のリストは変更されます。 3)元のリストを変更せずに、複数のリストをマージするのに適した *オペレーターを使用します。 4)Itertools.chainを使用します。これは、メモリ効率が高い大きなデータセットに適しています。

Join()メソッドを使用することは、Pythonのリストから文字列を接続する最も効率的な方法です。 1)join()メソッドを使用して、効率的で読みやすくなります。 2)サイクルは、大きなリストに演算子を非効率的に使用します。 3)リスト理解とJoin()の組み合わせは、変換が必要なシナリオに適しています。 4)redoce()メソッドは、他のタイプの削減に適していますが、文字列の連結には非効率的です。完全な文は終了します。

pythonexexecutionistheprocessoftransforningpythoncodeintoexecutabletructions.1)interpreterreadSthecode、変換intobytecode、thepythonvirtualmachine(pvm)executes.2)theglobalinterpreeterlock(gil)管理委員会、

Pythonの主な機能には次のものがあります。1。構文は簡潔で理解しやすく、初心者に適しています。 2。動的タイプシステム、開発速度の向上。 3。複数のタスクをサポートするリッチ標準ライブラリ。 4.強力なコミュニティとエコシステム、広範なサポートを提供する。 5。スクリプトと迅速なプロトタイピングに適した解釈。 6.さまざまなプログラミングスタイルに適したマルチパラダイムサポート。

Pythonは解釈された言語ですが、コンパイルプロセスも含まれています。 1)Pythonコードは最初にBytecodeにコンパイルされます。 2)ByteCodeは、Python Virtual Machineによって解釈および実行されます。 3)このハイブリッドメカニズムにより、Pythonは柔軟で効率的になりますが、完全にコンパイルされた言語ほど高速ではありません。

useaforloopwhenteratingoverasequenceor foraspificnumberoftimes; useawhileloopwhentinuninguntinuntilaConditionismet.forloopsareidealforknownownownownownownoptinuptinuptinuptinuptinutionsituations whileoopsuitsituations withinterminedationations。

pythonloopscanleadtoErrorslikeinfiniteloops、ModifiningListsDuringiteration、Off-Oneerrors、Zero-dexingissues、およびNestededLoopinefficiencies.toavoidhese:1)use'i


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール
