例1:複数の変数を使用して関数から複数の値を返す
Python関数から少数の変数のみを返したい場合は、これらの変数を定義して、関数を使用する複数の変数、オブジェクト、タプル、リスト、および辞書からの複数の戻り値を格納することをお勧めします。この例では、3つの変数がスクリプトで宣言され、3つの戻り値が格納されています。 NS multiVarFunc() 関数は、3つの入力値を取得し、その値を変数に返すために使用されます dept_name、total_std と total_fac 。
#!/ usr / bin / env python3
#複数の変数を返す関数を定義する
defmultiVarFunc(()。:
#文字列データを取得します
部門= 入力(('部門名を入力してください:')。
#数値データを取得する
stdnum= int((入力(('学生の総数を入力してください:')。)。
#数値データを取得する
ファクナム= int((入力(('総学部数を入力してください:')。)。
#複数の変数を返す
戻る部門、stdnum、ファクナム;
#関数を呼び出し、戻り値を3つの変数に格納します
dept_name、total_std、total_fac=multiVarFunc(()。
#戻り値のフォーマットされた出力を出力します
印刷(('NS部門:%sNS総学生数:%dNS総学部:%d '%((dept_name、total_std、
total_fac)。)。
出力
3つの値が入力として使用され、フォーマット後に出力値が出力されます。
例2:タプルを使用して関数から複数の値を返す
次のスクリプトは、タプルを使用して関数から複数の値を返す方法を示しています。関数から多くの値を返したい場合は、これがより適切なオプションです。ここでは、 tupleFunc() 関数は、ユーザーから4つの入力値を取得し、その値をタプルとして呼び出し元に返すために使用されます。戻り値は、という名前のタプル変数に格納されます tupleVar 値は後で印刷されます。
#!/ usr / bin / env python3#複数の変数を返す関数を定義する
deftupleFunc(()。:
#文字列データを取得します
stdID= 入力((「学生IDを入力してください:」)。
#文字列データを取得します
stdName= 入力(('学生名を入力してください:')。
#整数データを取得します
stdBatch= int((入力(('バッチ番号を入力してください:')。)。
#浮動小数点データを取得します
stdCGPA= 浮く((入力(('CGPAを入力してください:')。)。
#複数の変数をタプルとして返す
戻る ((stdID、stdName、stdBatch、stdCGPA)。
#関数を呼び出し、戻り値をタプルに格納します
tupleVar=tupleFunc(()。
#タプルのフォーマットされた出力を出力します
印刷(('NSID:%sNS名前:%sNSバッチ:%dNSCGPA:%4.2f '%((tupleVar[0]、tupleVar[1]、tupleVar[2]、
tupleVar[3])。)。
出力
4つの入力値が入力として取得され、フォーマットされた出力値が出力されます。
例3:リストを使用して関数から複数の値を返す
次のスクリプトは、リストを使用して関数から複数の値を返す方法を示しています。これは、関数から多くの値を返す別のオプションです。 NS listFunc() 関数は、ユーザーから2つの整数を取得し、これらの数値の加算、減算、乗算、および除算を計算するためにスクリプトで使用されます。次に、これらの4つの結果が関数からリストとして返されます。リスト変数、 listVar 戻り値を保存し、値を出力するために使用されます。
#!/ usr / bin / env python3#複数の値をリストとして返す関数を定義する
deflistFunc(()。:
#数値データを取得する
ナンバー1= 浮く((入力((「任意の番号を入力してください:」)。)。
#数値データを取得する
2番= 浮く((入力((「任意の番号を入力してください:」)。)。
添加=number1 + number2
減算=番号1-番号2
乗算=number1 * number2
分割=ナンバー1 /ナンバー2
#複数の変数をリストとして返す
戻る [ナンバー1、2番、添加、減算、乗算、分割]
#関数を呼び出し、戻り値をタプルに格納します
listVar=listFunc(()。
#リストデータのフォーマットされた出力を出力します
印刷(('NS%5.2f +%5.2f =%5.2f '%((listVar[0]、listVar[1]、listVar[2])。)。
印刷(('%5.2f-%5.2f =%5.2f'%((listVar[0]、listVar[1]、listVar[3])。)。
印刷(('%5.2f x%5.2f =%5.2f'%((listVar[0]、listVar[1]、listVar[4])。)。
印刷(('%5.2f /%5.2f =%5.2f'%((listVar[0]、listVar[1]、listVar[5])。)。
出力
67と23.7の2つの数値を取得すると、次の出力が表示されます。
例4:ディクショナリを使用して関数から複数の値を返す
次のスクリプトは、ディクショナリを使用して関数から複数の値を返す方法を示しています。これは、関数から多くの値を返す別のオプションです。名前の付いた辞書オブジェクト変数 dictVar 関数内で宣言されています。 3つの値が変数に割り当てられ、 dicVar 発信者に。次に、ディクショナリ値が出力されます。
#!/ usr / bin / env python3#複数の値を辞書として返す関数を定義する
defdictFunc(()。:
#辞書変数を宣言する
dictVar= dict(()。;
#いくつかの値を割り当てる
dictVar['名前'] = 「ケリアリ」
dictVar['年'] = 46
dictVar['職業'] = '歌手'
#辞書を戻り値として返す
戻るdictVar
#関数を呼び出し、戻り値をディクショナリ変数に格納します
dictValues=dictFunc(()。
#辞書の値を出力する
印刷(('辞書の値は次のとおりです。NS'、dictValues)。
出力
スクリプトの実行後、次の出力が表示されます。
例5:オブジェクトを使用して関数から複数の値を返す
次のスクリプトでは、クラスを関数とともに使用して、関数からオブジェクトとして複数の値を返します。いつ objFunc() 関数呼び出し、関数はからオブジェクトを初期化します 従業員 クラスを作成し、オブジェクトを呼び出し元に返します。次に、オブジェクトのプロパティ値が出力されます。
#!/ usr / bin / env python3#オブジェクトを初期化するクラスを定義する
クラス従業員:
def __初期化__((自己)。:
自己。名前 = 「モシャラフ・カリム」
自己。役職 = 'マネジャー'
自己。給料 = 50,000
#値をオブジェクトとして返す関数を定義する
defobjFunc(()。:
戻る従業員(()。
#関数を呼び出してオブジェクト変数を設定します
objVar=objFunc(()。
#フォーマットされた出力を印刷します
印刷(('NS従業員名:'、objVar。名前、'NS'、'役職:'、objVar。役職、'NS'、'給料:'、
objVar。給料)。
出力
スクリプトの実行後、次の出力が表示されます。
結論
関数からの複数の戻り値は、さまざまな目的でスクリプトで使用できます。このチュートリアルでは、Pythonの関数から複数の値を返すさまざまな方法をいくつか紹介しました。
著者のビデオを見る: ここ