誰かがこのコードが6しか印刷しない理由を説明できますか?すべての:)return文とprint文の比較?
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
誰かがこのコードが6しか印刷しない理由を説明できますか?すべての:)return文とprint文の比較?
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
まず、あなたのコードは、問題の権利をフォーマットされていないと私は原因(私は修正にそれを賭ける)保留中の編集にそれを編集することはできませんから、私は仮定するつもりですあなたのコードは次のようになっています:
def func(x):
result = 0
for i in range(x):
result = result + i
return result
print(func(4))
段階的に分解してください。あなたのプリントはfunc
に電話をかけ、番号4を与えてから何が出てくるかを印刷します。したがって、制御はfunc
にジャンプし、そこで処理を開始します。番号はx
です。結果を0に初期化し、ループを入力します。 for i in range(x)
は数字[0, 1, 2, 3]
(実際にはリストではありませんが、この簡単な説明のためにこの方法で扱うことができます)のリストを取得します。そのリスト内の各番号i
に対して、現在の値result
にそれを追加します。だから、result
は、これらのステップを経る:
result = 0 + 0
result = 0 + 1
result = 1 + 2
result = 3 + 3
result
の最終値が返され、印刷され、6です。それはあなたの6が来るところです。 func(5)
に電話をかけた場合、同じ手順を経るため同じ計算に4が追加されるため、10が得られます。この機能は、0
から少なくともx - 1
までの数値を加算します(少なくとも正の整数入力の場合)。
ああ、私は理解しています。私はちょうど最後のものではなくすべての結果を返すと仮定しました。だから、私は見たいと思った。 0 1 3 6。 – Prince
それはそれがするべきことなので。関数の戻り値を出力しています。範囲は排他的なので、1 + 2 + 3 = 6 – Li357
'print(func(1))'を試してください。 – Zety