0

宿題をしていて、「印刷」と「返却」を混同してしまいました。

たとえば、("a"、"e"、"i"、"o"、"u") のすべての文字を返す関数を作成するように依頼した場合、 def function (ex. all_letters("hello my wife") ? しかし、「印刷文字」を入力すると、出力がありますか?

4

3 に答える 3

4

を使用returnすると、変数に割り当てることができます。

def my_funct(x):
    return x+1

その後、行うことができますy = my_funct(5)y現在は 6 です。

それを説明するために、関数を機械と考えてください (一部の数学クラスで使用するものと同様です)。変数 (この場合は ) をプラグインすることにより、関数は何か (この場合は) をx出力 (または) します。変数は入力であり、は出力を提供します。returnsx+1return

ただし、printでは、値は画面に表示されるだけです。

関数を次のように変更した場合:

def my_funct(x):
    print(x+1)

そして do y = my_funct(x)yequals Noneprint()何も返さないためです。

マシンの比喩を使用して、変数をプラグインしますが (再び、x)、何かを出力する代わりに、それが等しいものを表示するだけです (再び、x+1)。ただし、何も出力しません。

于 2013-04-16T17:20:54.177 に答える
3

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上記の例で割り当てられた値の違いはわかりやすいです。 明示的な戻り値を持たない関数には暗黙的なものがあるため、の結果yNone割り当てられた場合です。printerreturn None

于 2013-04-16T17:21:20.077 に答える