「手をつないでPythonを学ぶ」28-カスタム関数の戻り値

前回の記事「手をつないでPythonを学ぶ」27-カスタム関数のパラメーターでは、カスタム関数のいくつかのタイプのパラメーターを学びました。この記事では、カスタム関数の戻り値を学習し、戻り値のアプリケーションを紹介します。

カスタム関数は、キーワードdefで始まり、キーワードreturnで終わるコードブロックであることはすでにわかっています。returnは、戻り値を返すキーワードです。

最初の2つの記事では、説明に重点が置かれていませんが、実際には、サイコロを投げた結果を返す、勝者の名前を返すなど、戻り値を使用するいくつかの例が例にリストされています、合計または面積計算などの結果を返します。

ただし、すべてのカスタム関数に戻り値があるわけではないこともわかりました。たとえば、前の記事の可変長パラメーターのいくつかの例では、カスタム関数にはreturnキーワードではなくdefキーワードしかありません。このとき、カスタム関数は関数の最後のコマンドライン(可変長パラメーターの例での印刷など)までのみ実行され、結果をメインプログラムに返さないか、コントロールNoneのみを返します。

上記の2つのケースのため、1つは比較的単純で、戻り値は1つだけであり、前に紹介した例があります。もう1つは、戻り値とreturnステートメントを含まず、あまり導入しません。今日は、複数の値を返す方法に焦点を当てます。これは、後続のデータ分析で頻繁に使用する必要があるPython機能でもあります。

複数の値を返す方法を示す非常に簡単な例があります。

In [1]: def f(): 
            a = 1
            b = 2
            c = 3
            return a, b, c

        a, b, c = f()
        print(a, b, c)

Out[1]: 1 2 3

この例では、カスタム関数f()は2つの目的を達成します。1つはabcの値を定義することであり、もう1つはabcの値を返すことです。

メインプログラムで最も重要なコマンド行はabcを割り当てることであり、関数の戻り値と1対1で対応して割り当てられます。ここで使用されている変数名は同じですが、実際には、割り当てのプロセスは変数名に基づいていません。重要なのは順序です。たとえば、変数名と順序を少し変更して、何が起こるかを確認できますか?

In [2]: def f():
            a = 1
            b = 2
            c = 3
            return a, b, c

        b, a, d = f()
        print(b, a, d)

Out[2]: 1 2 3

変数の名前と順序は変更されていますが、変数の名前や位置の調整によって変更されることなく、結果が割り当てられ、戻り値の順序で出力されていることがわかります。

では、この戻り値の特徴から、これまでに学んだデータ構造を思いつくことができるでしょうか。はい、それはタプルであり、固定長で不変のデータ構造です。

したがって、関数は複数の値を返すように見えますが、実際には、タプルであるオブジェクトのみを返します。したがって、上記の例の戻り値は、変数名で受け取ることができます。割り当て後の変数はタプルであり、使用するタプルのすべての特性を備えています。

In [3]: def f():
            a = 1
            b = 2
            c = 3
            return a, b, c

        tup = f()
        print(tup)

Out[3]: (1, 2, 3)

タプルに加えて、カスタム関数は辞書を介して複数の値を返すこともできます。

In [4]: def f():
            a = 1
            b = 2
            c = 3
            return {'A': a, 'B': b, 'C': c}

        dic = f()
        print(dic)
        print(dic['C'])   # 可以应用字典的各类特性

Out[4]: {'A': 1, 'B': 2, 'C': 3}
        3

もちろん、複数の値を返す方法はリストに不可欠です。

In [5]: def f():
            a = 1
            b = 2
            c = 3
            return [a, b, c]

        lst = f()
        print(lst)

Out[5]: [1, 2, 3]

現在、タプル、辞書、リストの形式で値が返されるいくつかの状況を紹介しました。私たちが学習したデータ構造の中には、形式、つまりセットがまだ不足しています。コレクションと他の集中型データ構造の最大の違いは、重複する値が含まれていないことです。では、関数が値をセットとして返し、戻り値に繰り返し要素が含まれている場合はどうなるかを見てみましょう。

In [6]: def f():
            a = 1
            b = 1
            c = 3
            return {a, b, c}

        set = f()
        print(set)

Out[6]: {1, 3}

思ったように、カスタム関数の結果に繰り返し要素が含まれ、値がコレクションとして返される場合、繰り返し要素は削除され、繰り返し要素を含まないコレクションが返されます。

上記は、カスタム関数が複数の戻り値を返すいくつかの状況です。

実際、最初の例で複数の異なる変数に順番に値を割り当てることに加えて、複数の値を返す別の方法は、returnステートメントの異なるデータ構造を介して複数の戻り値を「パック」することです。

このプロセスを別の方法で示すと、誰もがそれをよりよく理解できます。また、辞書を介して値の複数のインスタンスを返します。

In [7]: def f():
            a = 1
            b = 2
            c = 3
            dic = {'A': a, 'B': b, 'C': c}
            return dic

        dic = f()
        print(dic)

Out[7]: {'A': 1, 'B': 2, 'C': 3}

複数の戻り値を事前に「パック」することで、複数の戻り値が最終的に1つの戻り値になります。

したがって、この真実を知っていると、複数の戻り値についての謎はありません。1行の文が欠落しているだけで、さらにクールになります。

上記はカスタム関数の戻り値の概要です。さまざまな形式がありますが、重要なのは、カスタム関数から必要なコード行に1つ以上の値を返すための最適な方法を見つけることです。 。

この時点で、カスタム機能部分の導入は終了しました。

関数が重要すぎるため、カスタム関数の導入は終わりましたが、まだ関数を離れることはできません。次の記事では、「匿名関数」と呼ばれる特別な関数を紹介しますので、ご期待ください。

 

 


この記事を読んでくれてありがとう!ご不明な点がございましたら、メッセージを残してご相談ください^ _ ^

「手をつないでPythonを学ぶ」シリーズの他の記事を読むには、公式アカウントに従ってメニュー選択をクリックするか、以下のリンクをクリックして直接アクセスしてください。

「手をつないでPythonを学ぶ」1-なぜPythonを学ぶのか?

「手をつないでPythonを学ぶ」2-Pythonのインストール

「手をつないでPythonを学ぶ」3-PyCharmのインストールと構成

「手をつないでPythonを学ぶ」4-HelloWorld!

「手をつないでPythonを学ぶ」5-JupyterNotebook

「手をつないでPythonを学ぶ」6文字の識別

「手をつないでPythonを学ぶ」7-文字列のインデックス

「手をつないでPythonを学ぶ」8弦スライシング

「手をつないでPythonを学ぶ」9弦操作

「手をつないでPythonを学ぶ」10文字列関数

「手をつないでPythonを学ぶ」11-文字列のフォーマットされた出力

「手をつないでPythonを学ぶ」12-数字

「手をつないでPythonを学ぶ」13-操作

「手をつないでPythonを学ぶ」14-インタラクティブな入力

「手をつないでPythonを学ぶ」15-判断の声明

「手をつないでPythonを学ぶ」16ループステートメント

「手をつないでPythonを学ぶ」17-ループの終わり

「手をつないでPythonを学ぶ」18ループステートメント

「手をつないでPythonを学ぶ」19-第1段階の概要

「手をつないでPythonを学ぶ」20リスト

「手をつないでPythonを学ぶ」21タプル

「手をつないでPythonを学ぶ」22-辞書

「手をつないでPythonを学ぶ」23-組み込みシーケンス関数

「手をつないでPythonを学ぶ」24-コレクション

「手をつないでPythonを学ぶ」25リスト内包

「手をつないでPythonを学ぶ」26-カスタム関数

「手をつないでPythonを学ぶ」27-カスタム関数のパラメーター

ファンの方へ:「Pythonも言った」パブリックアカウントをフォローし、「Hand 28」と返信すると、この記事で使用されているサンプル文を無料でダウンロードできます。

Pythonについても話します-Python愛好家のための学習と共有の領域

 

おすすめ

転載: blog.csdn.net/mnpy2019/article/details/110679573