はじめに
この実験では、Python で関数が None を返すかどうかを確認する方法を学びます。この実験では、2 つの数値の合計を返す関数を持つ単純な Python スクリプトを作成することで、関数の戻り値を理解する手順を案内します。その後、スクリプトを実行し、出力を観察します。
実験では、関数を変更して異なるデータ型を返すようにし、最終的には関数が明示的に値を返さないシナリオに焦点を当てます。この場合、関数は None を返します。関数の戻り値を取得し、is 演算子を使用してその値が None であるかどうかを確認する方法を学びます。
関数の戻り値について学ぶ
このステップでは、Python の関数の戻り値について学びます。関数は、特定のタスクを実行する再利用可能なコードブロックです。多くの場合、関数が作業を完了した後に結果を返してほしいと思うでしょう。この結果が戻り値と呼ばれます。
まずは、戻り値を持つ関数を定義する単純な Python スクリプトを作成しましょう。
LabEx 環境で VS Code エディタを開きます。
~/projectディレクトリにcalculate.pyという名前の新しいファイルを作成します。~/project/calculate.pycalculate.pyに以下のコードを追加します。def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum ## Call the function and print the returned value result = add(5, 3) print(result)このコードでは、以下のことを行っています。
xとyという 2 つの引数を取るaddという関数を定義します。- 関数の内部で、
xとyの合計を計算し、sumという変数に格納します。 return sum文は、関数が呼び出されたときにsumの値を返すことを指定します。- 関数の外部で、引数
5と3を指定してadd関数を呼び出し、返された値をresultという変数に格納します。 - 最後に、
print()関数を使用してresultの値を表示します。
calculate.pyファイルを保存します。WebIDE でターミナルを開きます。
以下のコマンドを使用してスクリプトを実行します。
python calculate.py以下の出力が表示されるはずです。
8この出力は、
add関数が 5 と 3 の合計を正しく計算し、値 8 を返し、それがコンソールに印刷されたことを示しています。
次に、関数を変更して、文字列などの異なる型の値を返すようにしましょう。
VS Code で
calculate.pyファイルを開きます。コードを以下のように変更します。
def greet(name): """This function returns a greeting message.""" message = "Hello, " + name + "!" return message ## Call the function and print the returned value greeting = greet("LabEx User") print(greeting)このコードでは、以下のことを行っています。
nameという 1 つの引数を取るgreetという関数を定義します。- 関数の内部で、文字列 "Hello, "、
name引数の値、および文字列 "!" を連結して挨拶メッセージを作成します。 return message文は、関数が挨拶メッセージを返すことを指定します。- 関数の外部で、引数
"LabEx User"を指定してgreet関数を呼び出し、返された値をgreetingという変数に格納します。 - 最後に、
print()関数を使用してgreetingの値を表示します。
calculate.pyファイルを保存します。以下のコマンドを使用してスクリプトを再度実行します。
python calculate.py以下の出力が表示されるはずです。
Hello, LabEx User!この出力は、
greet関数が挨拶メッセージを正しく作成して返し、それがコンソールに印刷されたことを示しています。
戻り値を取得する
前のステップでは、値を返す関数を定義する方法を学びました。今回は、それらの戻り値をプログラム内で取得して使用する方法を学びます。戻り値を取得するとは、関数が返す値を変数に格納して後で使用できるようにすることを意味します。
前のステップで作成した calculate.py ファイルを引き続き使用しましょう。スクリプトを変更して、より多くの操作を実行し、戻り値を取得します。
VS Code で
calculate.pyファイルを開きます。コードを以下のように変更します。
def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum def subtract(x, y): """This function subtracts two numbers and returns the result.""" difference = x - y return difference ## Call the functions and capture the return values num1 = 10 num2 = 5 sum_result = add(num1, num2) print("The sum of", num1, "and", num2, "is:", sum_result) difference_result = subtract(num1, num2) print("The difference between", num1, "and", num2, "is:", difference_result)このコードでは、以下のことを行っています。
addとsubtractの 2 つの関数を定義します。add関数を引数num1とnum2で呼び出し、返された値をsum_resultという変数に格納します。subtract関数を引数num1とnum2で呼び出し、返された値をdifference_resultという変数に格納します。print()関数を使用して、sum_resultとdifference_resultの値を説明的なテキストとともに表示します。
calculate.pyファイルを保存します。以下のコマンドを使用してスクリプトを実行します。
python calculate.py以下の出力が表示されるはずです。
The sum of 10 and 5 is: 15 The difference between 10 and 5 is: 5この出力は、
add関数とsubtract関数の戻り値を正常に取得し、プログラム内で使用できたことを示しています。
次に、ある関数の戻り値を別の関数の引数として使用する、より複雑な例を作成しましょう。
VS Code で
calculate.pyファイルを開きます。コードを以下のように変更します。
def add(x, y): """This function adds two numbers and returns the result.""" sum = x + y return sum def multiply(x, y): """This function multiplies two numbers and returns the result.""" product = x * y return product ## Call the functions and capture the return values num1 = 5 num2 = 3 sum_result = add(num1, num2) product_result = multiply(sum_result, 2) ## Use the return value of add as an argument to multiply print("The sum of", num1, "and", num2, "is:", sum_result) print("The product of the sum and 2 is:", product_result)このコードでは、以下のことを行っています。
addとmultiplyの 2 つの関数を定義します。add関数を引数num1とnum2で呼び出し、返された値をsum_resultという変数に格納します。multiply関数を引数sum_resultと2で呼び出します。これは、add関数の戻り値をmultiply関数の入力として使用できることを示しています。返された値をproduct_resultという変数に格納します。print()関数を使用して、sum_resultとproduct_resultの値を説明的なテキストとともに表示します。
calculate.pyファイルを保存します。以下のコマンドを使用してスクリプトを実行します。
python calculate.py以下の出力が表示されるはずです。
The sum of 5 and 3 is: 8 The product of the sum and 2 is: 16この出力は、ある関数の戻り値を別の関数の引数として正常に使用できたことを示しており、関数の戻り値の強力さと柔軟性を実証しています。
戻り値が None かどうかを確認する
場合によっては、関数が常に意味のある値を返すとは限りません。そのような場合、関数は None を返すことがあります。None は Python の特殊な値で、値が存在しないことを表します。エラーを回避するために、関数の戻り値を使用する前に、その戻り値が None かどうかを確認することは重要です。
calculate.py ファイルを変更して、None を返す可能性のある関数を追加しましょう。
VS Code で
calculate.pyファイルを開きます。コードを以下のように変更します。
def divide(x, y): """This function divides x by y and returns the result. If y is 0, it returns None to avoid division by zero errors. """ if y == 0: return None else: return x / y ## Call the function and check if the return value is None numerator = 10 denominator = 0 result = divide(numerator, denominator) if result is None: print("Cannot divide by zero!") else: print("The result of", numerator, "/", denominator, "is:", result) denominator = 2 result = divide(numerator, denominator) if result is None: print("Cannot divide by zero!") else: print("The result of", numerator, "/", denominator, "is:", result)このコードでは、以下のことを行っています。
xとyという 2 つの引数を取るdivideという関数を定義します。- 関数の内部で、
yが 0 と等しいかどうかを確認します。もし等しければ、ゼロ除算エラーを回避するためにNoneを返します。 yが 0 でない場合、x / yの結果を計算して返します。- 関数の外部で、分母が 0 の状態で
divide関数を呼び出します。 is演算子を使用して、返された値がNoneかどうかを確認します。- 返された値が
Noneの場合、エラーメッセージを出力します。 - そうでない場合、除算の結果を出力します。
- その後、有効な分母で
divide関数を再度呼び出し、結果を出力します。
calculate.pyファイルを保存します。以下のコマンドを使用してスクリプトを実行します。
python calculate.py以下の出力が表示されるはずです。
Cannot divide by zero! The result of 10 / 2 is: 5.0この出力は、分母が 0 の場合を正しく処理し、適切なエラーメッセージを出力したことを示しています。また、分母が 0 でない場合には、正しく結果を計算して出力したことも示しています。
None は Python のシングルトンオブジェクトであるため、値が None かどうかを確認する際には is 演算子を使用することが重要です。これは、プログラム全体に None のインスタンスが 1 つしか存在しないことを意味します。== 演算子を使用すると、オブジェクト自体ではなくオブジェクトの値を比較するため、必ずしも正しく動作しない場合があります。
まとめ
この実験では、Python の関数の戻り値について学びました。2 つの引数を取り、それらの合計を計算して結果を返す add という関数を作成しました。その後、この関数を呼び出し、返された値を変数に格納してコンソールに出力しました。
この実験では、関数が整数などのさまざまな型の値を返すことができることを示しました。これにより、関数は計算や操作を行い、結果を呼び出し元のコードに返してさらに利用することができます。



