Python関数の基本を実践で身につけよう【レッスン3-1】

ながみえ

Lesson2ではPythonの制御構造について学習してきました。

今回から関数とスコープ編に入ります。このページはその入り口、関数の基本について見ていきます。

Lesson1:基礎文法編
Lesson2:制御構造編
Lesson3:関数とスコープ編
・Lesson3-1:関数の基本を理解しよう ◁今回はココ
・Lesson3-2:関数の戻り値とデフォルト引数を理解しよう
・Lesson3-3:スコープの概念を理解しよう
・Lesson3-4:関数を使いこなそう
・Lesson3-5:無名関数を理解しよう
・練習問題3-1:丁半賭博ゲームを作ろう
・練習問題3-2:石取りゲームを作ろう
Lesson4:データ構造編
Lesson5:オブジェクト指向編
次のステップ:Pythonを用いたアプリ開発

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-☆3 簡単なじゃんけんゲームを作ろう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson3-2 関数の戻り値とデフォルト引数を理解しよう

関数を定義して呼び出す|Pythonの関数の基本構文を理解する

この章では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()などは頻繁に使用されるため、初心者でもすぐに習得できるでしょう。

まとめ

この図は、このレッスン3「関数編」で学習する内容をまとめた図です。この記事では一番上のシンプルな関数の定義と呼び出しについて学びました。

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

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

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

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

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

【Python】勉強猫がノートパソコンに向かい、練習問題に挑戦する様子。記事内の休憩用イラスト

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

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

問題の詳細条件

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

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

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

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

【ヒント】難しいと感じる人だけ見よう

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

Q
ヒント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 を呼び出す

Q
ヒント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 を呼び出し、入力された値を使って計算を行うコードを書いてください。
"""

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

問題の答え合わせと解説

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

一つの正解例

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

Q
正解コード
# 関数の定義
# この関数は元金、年利、年数を引数に取り、最終的な金額を計算して表示する関数です。
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コードでは銀行に預金を預けた際に数年後の金額を計算するための関数を定義し、それを使って金利計算を行っています。

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

Q
詳細解説

関数の定義

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 を実際に呼び出し、ユーザーが入力した元金、年利、年数を引数として渡します。

<<前のページ

【Python学習記事のアイキャッチ画像】Lesson2-☆3 簡単なじゃんけんゲームを作ろう

Pythonの記事一覧

Python学習カテゴリの親ページ用アイキャッチ画像(テキスト&問題集)、記事一覧へのリンク案内

次のページ>>

【Python学習記事のアイキャッチ画像】Lesson3-2 関数の戻り値とデフォルト引数を理解しよう

FAQ|Pythonの関数定義と基本操作

Q
Q1. Pythonで関数を定義するメリットは何ですか?

関数を定義することで、コードを繰り返し使い回せるため、保守性や可読性が向上します。また、処理を分割することで、プログラムの構造が明確になり、エラーの特定も容易になります。

Q
Q2. input()で受け取った値を関数に渡すにはどうすればいいですか?

input()で取得した値を変数に格納し、それを引数として関数に渡せば処理が可能です。例えば、user_input = input() とし、my_function(user_input) のように使います。

Q
Q3. 関数名はどう決めればいいですか?

関数名はその関数が何をするかが一目で分かるよう、動詞+目的語の形式(例:calculate_totalなど)が望ましく、Pythonの命名規則(スネークケース)に従うのが一般的です。

質問用コンタクトフォーム

この記事はAIを用いて書いた記事です。

人間の目による確認も行っていますが、もし間違い等ありましたらご指摘頂けると大変助かります。

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

記事URLをコピーしました