まいにちコード

トップページ>まいにちコード

まいにちコード

本日(2025/06/29)のコード



def func1(n):
    s = 0
    for i in range(1, n + 1):
        s += i
    return s

def func2(n):
    if n > 10:
        return func1(n - 5)
    else:
        return func1(n + 5)

print(func2(8))

出力を予想してみよう!




解説

解説を見る

このコードは、func1func2という2つの関数を定義し、func2を特定の引数で呼び出した結果をprint関数で表示するものです。

1. func1(n)関数の解説:

  • 概要: この関数は、1からnまでの整数の合計を計算して返します。
  • 引数: n は整数です。合計を計算する上限の値を指定します。
  • 処理:
    • s = 0: 変数 s を初期化します。s は合計を格納するために使われます。初期値は0です。
    • for i in range(1, n + 1):: for ループを使って、1からnまでのすべての整数に対して繰り返し処理を行います。 range(1, n + 1) は 1, 2, 3, ..., n という整数のシーケンスを生成します。i はループの中で、このシーケンスの各値を順番に取ります。
    • s += i: ループの中で、現在の数 is に加算します。これは s = s + i と同じ意味です。つまり、s はループが繰り返されるたびに、それまでの合計に i を加えた値で更新されていきます。
    • return s: ループが終了したら、s (1からnまでの整数の合計) を返します。

2. func2(n)関数の解説:

  • 概要: この関数は、n の値に基づいて func1 を異なる引数で呼び出し、その結果を返します。
  • 引数: n は整数です。
  • 処理:
    • if n > 10:: n が 10 より大きいかどうかをチェックします。
      • return func1(n - 5): n が 10 より大きい場合、func1n - 5 を引数として呼び出し、その結果を返します。
    • else:: n が 10 以下の場合に実行されます。
      • return func1(n + 5): func1n + 5 を引数として呼び出し、その結果を返します。

3. print(func2(8))の解説:

  • func2(8): func2関数を引数8で呼び出します。
  • func2(8)の実行:
    • nは8なので、if n > 10: の条件は偽となり、else ブロックが実行されます。
    • func1(n + 5)、つまり func1(8 + 5)、すなわち func1(13) が呼び出されます。
  • func1(13)の実行:
    • func1 は 1から13までの整数の合計を計算します。これは 1 + 2 + 3 + ... + 13 = 91 です。
  • func2(8)func1(13) の結果である 91 を返します。
  • print(91): print 関数は、func2(8) の戻り値である 91 を標準出力 (通常はコンソール) に表示します。

まとめ:

このコードは、条件分岐と関数の組み合わせによって、1から指定された値までの整数の合計を計算し、その結果を表示するプログラムです。 func2 は、入力値 n に応じて func1 に渡す引数を調整し、結果を間接的に返します。