ホームページ >バックエンド開発 >Python チュートリアル >関数 `lyrics()` が「一番最初の行」を出力するのに、print(lyrics()) が「None」を返すのはなぜですか?
なぜ「なし」出力になるのでしょうか? 2 つの Print ステートメントを解明する
次の関数を使用すると、特有の問題が発生します:
def lyrics(): print("The very first line") print(lyrics())
期待される「最初の行」の代わりに、出力は不可解なことに「The最初の行」の後に「なし」が続きます。
隠されたものを明らかにする真実
この不可解な動作の背後にある犯人は、2 つの print ステートメントの存在にあります。歌詞関数内で、最初のステートメントは「最初の行」を表示する役割を果たします。ただし、関数は明示的に値を返しません。つまり、Python はデフォルト値 None を割り当てます。
関数の外側の 2 番目の print ステートメントは、lyrics() によって返された値を出力しようとします。この関数は実質的に None を返すため、端末に「None」を出力します。
問題の修正: Return ステートメントの採用
この状況を修正し、望ましい結果を保証するには出力では、明示的に値を返すように Lyrics 関数を変更します。 return ステートメントを追加することで、関数が生成する値を指定できます。
たとえば、次のコードを考えてみましょう。
def lyrics(): print("The very first line") return None print(lyrics())
これで、コードは「最初のline" として、歌詞関数内の return ステートメントは明示的に None を返します。
Return についてデフォルト
関数内で return ステートメントを省略すると、Python は自動的に None を返すことに注意してください。コードには明示的に記載されていませんが、この動作は、戻り値を明示的に指定していない関数が依然として None を出力する理由を理解するために重要です。
追加の例
詳細明確にするために、次のコード スニペットを検討してください。
def test1(): print("In function.") a = test1() print(a) # Prints None print(test1()) # Prints "In function." and then None test1() # Prints "In function." and returns None (not printed)
この例では、test1() は暗黙的に None を返します。リターンステートメント。したがって、後続の print ステートメントは前述のように動作します。
特定の戻り値を保証するには、目的の値を含む return ステートメントを使用します。例:
def test(): return "ACV" print(test()) # Prints "ACV" a = test() print(a) # Prints "ACV"
test() 関数内で明示的に「ACV」を返すことにより、出力には意図した値が正しく表示されます。
以上が関数 `lyrics()` が「一番最初の行」を出力するのに、print(lyrics()) が「None」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。