宿題をしていて、「印刷」と「返却」を混同してしまいました。
たとえば、("a"、"e"、"i"、"o"、"u") のすべての文字を返す関数を作成するように依頼した場合、 def function (ex. all_letters("hello my wife") ? しかし、「印刷文字」を入力すると、出力がありますか?
宿題をしていて、「印刷」と「返却」を混同してしまいました。
たとえば、("a"、"e"、"i"、"o"、"u") のすべての文字を返す関数を作成するように依頼した場合、 def function (ex. all_letters("hello my wife") ? しかし、「印刷文字」を入力すると、出力がありますか?
を使用return
すると、変数に割り当てることができます。
def my_funct(x):
return x+1
その後、行うことができますy = my_funct(5)
。y
現在は 6 です。
それを説明するために、関数を機械と考えてください (一部の数学クラスで使用するものと同様です)。変数 (この場合は ) をプラグインすることにより、関数は何か (この場合は) をx
出力 (または) します。変数は入力であり、は出力を提供します。returns
x+1
return
ただし、print
では、値は画面に表示されるだけです。
関数を次のように変更した場合:
def my_funct(x):
print(x+1)
そして do y = my_funct(x)
、y
equals None
、print()
何も返さないためです。
マシンの比喩を使用して、変数をプラグインしますが (再び、x
)、何かを出力する代わりに、それが等しいものを表示するだけです (再び、x+1
)。ただし、何も出力しません。
return
呼び出しスコープに値を返します。 print
(誰かがモンキー パッチを適用していない限り) データを標準出力にプッシュします。戻り値は呼び出しスコープから後で使用できますが、出力されたものは OS にディスパッチされ、OS はそれに応じてそれを処理します。
>>> def printer(x):
... print x * 2
...
>>> def returner(x):
... return x * 2
...
>>> printer(2)
4
>>> y = printer(2)
4
>>> y is None
True
>>> returner(2)
4
>>> y = returner(2)
>>> y
4
インタラクティブ コンソールは、戻り値の文字列表現を出力するだけなので、これを説明するには少し誤解を招きますが、y
上記の例で割り当てられた値の違いはわかりやすいです。 明示的な戻り値を持たない関数には暗黙的なものがあるため、の結果y
がNone
割り当てられた場合です。printer
return None