ホームページ > バックエンド開発 > Python チュートリアル > 私の Python 関数が期待される出力ではなく「None」を返すのはなぜですか?

私の Python 関数が期待される出力ではなく「None」を返すのはなぜですか?

DDD
リリース: 2024-11-28 11:00:10
オリジナル
369 人が閲覧しました

Why Does My Python Function Return `None` Instead of the Expected Output?

Python 関数の戻り動作を理解する

この単純な Python 関数が最後に None を返すのはなぜですか?

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1
ログイン後にコピー

説明:

でPython では、すべての関数が値を返します。 return ステートメントが明示的に指定されていない場合、デフォルトの戻り値は None です。この場合、関数 printmult() は戻り値を指定しないため、デフォルトで None を返します。

Expectation:

誤って次のことを期待する可能性があります。 printmult(30) は実際とは異なる動作をします。ここで説明します。

  • printmult(30) は、関数 printmult() を引数 30 で評価します。
  • この関数は、1 から 10 までの 30 の九九を出力します。その結果、出力 "30 60 90 120 150 180 210 240 270 300 " (引用符なし)。
  • ただし、この関数は特定の値を返しません。
  • print() は、printmult(30) の戻り値 (None) を受け取ります。それを印刷しますが、None には文字列がないため、表示される出力はありません。

推奨事項:

この動作を回避するには、関数の最後で明示的に目的の値を返します。たとえば、九九の最後の要素を返すことができます:

def printmult(n):
    i = 1
    while i <= 10:
        print(n * i, end=' ')
        i += 1
    return n * 10

print(printmult(30))  # Now returns 300
ログイン後にコピー

以上が私の Python 関数が期待される出力ではなく「None」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート