【Python】レッスン3-01:関数の基本を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:関数の定義と使用

この記事の練習問題で使用する知識:
レッスン1の知識、比較演算子と論理演算子条件分岐(if-else文)条件分岐(elif文)条件分岐(match文)繰り返し処理(for文)繰り返し処理(while文)繰り返しの制御、エラーメッセージ例外処理の基礎関数の定義と使用戻り値とデフォルト引数スコープの概念関数の受け渡し無名関数

<<前の問題 問題集Top 次の問題>>

Pythonの「関数の基本」とは

この章ではPythonにおける「関数」の意味や使い方を学習します。必要ない方はここをクリックして練習問題へ飛びましょう。




プログラミングにおいて関数は非常に重要な役割を果たしますが、Pythonにおいても関数を使ってコードを整理し、再利用性を高めることができます。

本記事ではPythonにおける関数の定義方法と使用方法について解説します。

関数とは?

関数とは一連の処理をまとめて一つの名前で呼び出すことができる仕組みです。

一つのコードの中で何度も使用する処理を関数として定義しておけば、関数を呼び出すだけでその処理を何度でも実行することができます。

これによりコードの見通しが良くなり、保守もしやすくなります。

関数の定義方法

Pythonで関数を定義するには、defキーワードを使います。基本的な構文は以下の通りです。

def 関数名(引数):
    処理内容
    return 戻り値
  • def: 関数を定義するためのキーワードです。
  • 関数名: 関数の名前です。任意の名前を付けることができますが、分かりやすい名前を付けるのが望ましいです。
  • 引数: 関数に渡す値です。引数が不要な場合は空の括弧()にします。
  • return: 関数が処理結果を返すためのキーワードです。詳細は次の記事で解説します。

以下は、引数として名前を受け取り、その名前に対して挨拶を行う関数の例です。

def greet(name):
    print(f"Hello, {name}!")

この関数はnameという引数を受け取り、その名前を使って挨拶を出力します。

関数の使用例

先ほど定義した関数greetは、以下のように呼び出すことができます。

greet("Alice")  # 出力: Hello, Alice!

このように関数を呼び出すことで、nameに”Alice“を渡し、greet関数がHello, Alice!と出力します。すなわち事前に関数greetを定義しておくことで、たった1行のコードでそれを使用できるということです。

次にもう少し複雑な例として、引数に2つの数値を取り、それらを足し合わせる関数を定義してみましょう。

def add_numbers(a, b):
    print(a + b)

この関数は2つの引数abを受け取り、その合計値を出力します。

add_numbers(3, 5) # 出力: 8

関数add_numbersを呼び出して3と5を渡すと、合計の8が出力されます。

このように、関数を使うことで繰り返し使う処理を簡単にまとめることができます。

組み込み関数について

Pythonには多くの便利な組み込み関数が最初から用意されています。

これらの関数は自分で定義する必要がなくすぐに利用することができます。

以下は、代表的な組み込み関数の例です。

1.print(): コンソールに文字列や変数の値を表示する関数。

print("Hello, World!")  # 出力: Hello, World!

2.input(): ユーザーからの入力を受け取る関数。

name = input("あなたの名前を入力してください: ")
print(f"こんにちは、{name}さん!")

3.len(): リストや文字列の長さを返す関数。

my_list = [1, 2, 3, 4]
print(len(my_list))  # 出力: 4

4.sum(): リストやタプルなどの数値の合計を計算する関数。

numbers = [1, 2, 3, 4]
print(sum(numbers))  # 出力: 10

5.range(): 一定範囲の整数のリストを生成する関数。

for i in range(5):
    print(i)
# 出力: 0 1 2 3 4

これらの組み込み関数は非常に便利で、プログラミングの効率を大幅に向上させます。

特にprint()len()などは頻繁に使用されるため、初心者でもすぐに習得できるでしょう。

まとめ

関数はPythonのプログラミングにおいて、コードを効率的に書くための強力なツールです。

一度定義すれば何度でも再利用できるため、特に大規模なプログラムを書く際に非常に役立ちます。

またPythonには多くの組み込み関数が用意されており、これらを活用することでさらに生産性を高めることができます。

関数の定義と組み込み関数を組み合わせて、より効率的なプログラミングを目指しましょう。




練習問題3-1:預金の金利を計算して最終的な金額を表示するプログラムを作ろう

銀行にお金を預けた際、年利を考慮して預けた元金が数年後にどれだけ増えるかを計算するプログラムを作成しましょう。

元金、年利、預ける年数を入力して、関数を使ってその計算結果を画面に表示します。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. 関数 calculate_and_print_interest を定義し、元金、年利、預ける年数を引数として受け取ること。
  2. 関数内で、以下の複利計算式を使って最終的な金額を計算し、乗示すること。
    • 計算式: 最終金額 = 元金 × (1 + 年利 / 100) の (預けた年数)乗
  3. ユーザーから元金、年利(%)、預ける年数を input 関数を使って入力させること。
  4. ユーザーが入力した値を使って、関数を呼び出し、最終的な金額を表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

元金を入力してください: 100000
年利(%)を入力してください: 5
預ける年数を入力してください: 10
10年後の預金額は: 162889.46円です。

この問題を解くヒント

1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。

1.関数 calculate_and_print_interest の定義
1-1. 元金、年利、年数の引数を受け取る
1-2. 複利計算の式を使用し、最終金額を計算
1-3. 計算結果を日本語で表示する

2.メイン部分
2-1. input 関数を使ってユーザーから元金を入力してもらう
2-2. input 関数を使ってユーザーから年利(%)を入力してもらう
2-3. input 関数を使ってユーザーから預ける年数を入力してもらう
2-4. 関数 calculate_and_print_interest を呼び出す

ヒント2【穴埋め問題にする】

以下のコードをコピーし、コメントに従ってコードを完成させて下さい。

# 関数の定義
# この関数は元金、年利、年数を引数に取り、最終的な金額を計算して表示する関数です。
def calculate_and_print_interest(principal, rate, years):
    """【穴埋め問題1】
    ここに複利計算式を使って最終金額を計算するコードを書いてください。
    """

    """【穴埋め問題2】
    ここに計算結果を日本語で表示するコードを書いてください。
    """

# メイン部分
# ユーザーから元金、年利、年数を入力してもらう
principal = float(input("元金を入力してください: "))
rate = float(input("年利(%)を入力してください: "))
years = int(input("預ける年数を入力してください: "))

"""【穴埋め問題3】
ここで関数 calculate_and_print_interest を呼び出し、入力された値を使って計算を行うコードを書いてください。
"""

 

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。



解答例と解説

この問題の一つの正解例とそのコードの解説を以下に示します。

正解コードの例

例えば以下のようなプログラムが考えられます。

# 関数の定義
# この関数は元金、年利、年数を引数に取り、最終的な金額を計算して表示する関数です。
def calculate_and_print_interest(principal, rate, years):
    # シンプルな複利計算の式を使用
    # 最終金額 = 元金 * (1 + 年利) ** 年数
    final_amount = principal * (1 + rate / 100) ** years
    # 計算結果を直接表示
    print(f"{years}年後の預金額は: {final_amount:.2f}円です。")

# メイン部分
# ユーザーから元金、年利、年数を入力してもらう
principal = float(input("元金を入力してください: "))
rate = float(input("年利(%)を入力してください: "))
years = int(input("預ける年数を入力してください: "))

# 関数を呼び出して最終的な金額を計算し、表示する
calculate_and_print_interest(principal, rate, years)

正解コードの解説

このPythonコードでは銀行に預金を預けた際に数年後の金額を計算するための関数を定義し、それを使って金利計算を行っています。

ブロックごとに詳しく解説していきます。

関数の定義

def calculate_and_print_interest(principal, rate, years):
  • この部分は関数を定義しています。必要な引数(principalrateyears)を受け取り、その処理を実行します。
  • principal, rate, years はそれぞれ、元金、年利、預ける年数を表します。

複利計算を行う部分

final_amount = principal * (1 + rate / 100) ** years
  • この行は、複利計算を行っています。
  • principal(元金)に対して、年利(rate)を考慮し、数年後の最終的な金額を計算しています。

計算結果を表示する部分

print(f"{years}年後の預金額は: {final_amount:.2f}円です。")
  • print 関数を使って、計算結果を画面に表示します。
  • f"{years}年後の預金額は: {final_amount:.2f}円です。" という形式で、years 年後の預金額(final_amount)を日本語で表示しています。
  • :.2f は小数点以下2桁まで表示することを意味します。

メイン部分:ユーザーからの入力を受け取る

principal = float(input("元金を入力してください: "))
rate = float(input("年利(%)を入力してください: "))
years = int(input("預ける年数を入力してください: "))
  • input 関数を使って、ユーザーから元金、年利、年数を入力してもらいます。
  • float 関数は、入力された値を実数(小数を含む数値)に変換します。元金と年利は小数点以下も扱えるようにするために float を使用します。
  • int 関数は、入力された値を整数に変換します。預ける年数は整数として扱います。

関数の呼び出し

calculate_and_print_interest(principal, rate, years)
  • ここで、先ほど定義した関数 calculate_and_print_interest を実際に呼び出し、ユーザーが入力した元金、年利、年数を引数として渡します。
  • この関数が実行されると、金利計算が行われ、最終的な預金額が表示されます。
<<前の問題 問題集Top 次の問題>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    Python記事トップへ戻る
    トップページへ戻る