Python コーディング問題 第22回『 複数の戻り値・変数のスコープ』

プログラミング上達のコツは学習初期段階でとにかく手を動かしてコーディングすることです。
本シリーズでは Python の初学者に向けたコーディング問題を出題します。
今回は複数の戻り値・変数のスコープについて学習します。コーディング指示に従ってコーディングしてみましょう!

目次

学習の進め方-

  1. プログラム説明および目的を確認し、どのようなプログラムで何を学ぶかイメージしましょう。
  2. コーディング指示に従ってコーディングをします。
    もし分からなければ、コード例を確認しても良いです。
  3. 自分の出力結果と出力結果例を比較してみましょう。
  4. コード例を確認し、自分のコードと比較してみましょう。
    コード例は「あくまでも例」なので完全に一致する必要はありません。
  5. 最終的にはコーディング指示だけでコーディングできるよう、繰り返し練習しましょう。

Python コーディング問題 1:個人予算管理アプリケーション

プログラム説明

このプログラムは、個人の予算管理をサポートします。ユーザーは収入と支出を入力し、総収入、総支出、そして残高を表示します。

目的

このプログラムを通じて、学習者は複数の戻り値を設定する関数の定義と、タプルを用いたアンパック代入のスキルを身につけます。

コーディング指示

新しいPythonファイル simple_budget_manager.py を作成する

  1. 任意のエディタを開き、新しいファイルを作成します。
  2. ファイル名を simple_budget_manager.pyとして保存します。

収入と支出を管理するための関数 calculate_budget を定義する

  1. 次の引数を持つ関数 calculate_budget を定義します:
    incomes(収入のリスト)
    expenses(支出のリスト)
  2. 関数 calculate_budget 内で次の処理を行います:
    total_income を計算する(収入の合計)
    total_expense を計算する(支出の合計)
    balance を計算する(収入合計から支出合計を引いた値)
  3. total_income, total_expense, balance の3つの値をタプルとして返します。

ユーザー入力を受け付けるメインの処理を追加する

  1. ユーザーが収入と支出を入力し、calculate_budget 関数を呼び出して結果を表示します。

出力結果例

タップして出力結果例を表示

個人予算管理アプリケーション
収入をカンマ区切りで入力してください: 200000,60000
支出をカンマ区切りで入力してください: 75000,30000,9800,15000,40000

総収入: 260000
総支出: 169800
残高: 90200

Python コード例/

タップして出力結果例を表示
# 収入と支出を管理するための関数
def calculate_budget(incomes, expenses):
    # 収入の合計を計算
    total_income = sum(incomes)
    # 支出の合計を計算
    total_expense = sum(expenses)
    # 残高を計算
    balance = total_income - total_expense
    # 複数の戻り値をタプルとして返す
    return total_income, total_expense, balance

# ユーザー入力を受け付ける
print("\n個人予算管理アプリケーション")
# 収入を入力し、リストに変換
incomes = list(map(int, input("収入をカンマ区切りで入力してください: ").split(",")))
# 支出を入力し、リストに変換
expenses = list(map(int, input("支出をカンマ区切りで入力してください: ").split(",")))
# 予算を計算
total_income, total_expense, balance = calculate_budget(incomes, expenses)
# 結果を表示
print(f"\n総収入: {total_income}")
print(f"総支出: {total_expense}")
print(f"残高: {balance}")

Python コーディング問題 2:成績管理アプリケーション

プログラム説明

このプログラムは、学生の成績を管理するためのアプリケーションです。ユーザーは各科目の得点を入力し、総得点、平均点、最高得点を表示します。

目的

このプログラムを通じて、学習者は複数の戻り値を設定する関数の定義と、タプルを用いたアンパック代入のスキルを身につけます。

コーディング指示

新しいPythonファイル grade_manager.py を作成する

  1. 任意のエディタを開き、新しいファイルを作成します。
  2. ファイル名を grade_manager.py として保存します。

成績を管理するための関数 calculate_gradesを定義する

  1. 次の引数を持つ関数 calculate_grades を定義します:
    scores(各科目の得点のリスト)
  2. 関数 calculate_grades 内で次の処理を行います:
    total_scoreを計算する(得点の合計)
    average_scoreを計算する(得点の平均)
    highest_scoreを計算する(最高得点)
  3. total_score, average_score, highest_score の3つの値をタプルとして返します。

ユーザー入力を受け付けるメインの処理を追加する

  1. ユーザーが各科目の得点を入力し、calculate_grades 関数を呼び出して結果を表示します。

出力結果例

タップして出力結果例を表示

成績管理アプリケーション
各科目の得点をカンマ区切りで入力してください: 57,80,76,54,77

総得点: 344.0
平均点: 68.8
最高得点: 80.0

Python コード例/

タップして出力結果例を表示
# 成績を管理するための関数
def calculate_grades(scores):
    # 得点の合計を計算
    total_score = sum(scores)
    # 得点の平均を計算
    average_score = total_score / len(scores)
    # 最高得点を計算
    highest_score = max(scores)
    # 複数の戻り値をタプルとして返す
    return total_score, average_score, highest_score

# ユーザー入力を受け付ける
print("\n成績管理アプリケーション")
# 各科目の得点を入力し、リストに変換
scores = list(map(float, input("各科目の得点をカンマ区切りで入力してください: ").split(",")))
# 成績を計算
total_score, average_score, highest_score = calculate_grades(scores)
# 結果を表示
print(f"\n総得点: {total_score}")
print(f"平均点: {average_score}")
print(f"最高得点: {highest_score}")

Python コーディング問題 3:シンプルなタスク管理アプリケーション

プログラム説明

このプログラムは、ユーザーのタスクを管理します。ユーザーはタスクの詳細(タスク名、締め切り日、ステータス)を入力し、保存されたタスク情報を表示します。

目的

このプログラムを通じて、学習者は変数のスコープに関する理解を深め、グローバル変数とローカル変数の使い方を学びます。

コーディング指示

新しいPythonファイル task_manager.py を作成する

  1. 任意のエディタを開き、新しいファイルを作成します。
  2. ファイル名を task_manager.py として保存します。

グローバル変数 tasks を宣言する

  1. tasks という空のリストをグローバル変数として宣言します。

タスク情報を管理するための関数 add_task を定義する

  1. 次の引数を持つ関数 add_task を定義します:
    task_name(タスク名)
    deadline(締め切り日)
    status(ステータス)
  2. 関数 add_task 内で次の処理を行います:
    ・辞書形式のタスク情報を作成します。キーをtask_namedead_linestatusとし、
     引数で渡された値をそれぞれのキーのバリューとします。
    ・グローバル変数 tasks を更新し、タスク情報を辞書形式でリストに追加します。

タスク情報を表示するための関数 display_tasks を定義する

  1. display_tasks 関数内で、グローバル変数 tasks に保存されている全てのタスク情報を表示します。

ユーザー入力を受け付けてタスク情報を追加し、表示する

  1. input 関数を使ってタスク名、締め切り日、ステータスを入力します。
  2. タスク情報を追加するために add_task 関数を呼び出します。
  3. display_tasks 関数を呼び出して、タスク情報を表示します。

出力結果例

タップして出力結果例を表示

タスク名を入力してください: プログラム
締め切り日を入力してください (YYYY-MM-DD): 2025-3-31
ステータスを入力してください (例: 未完了, 完了): 未完了

タスク情報:
タスク名: プログラム
締め切り日: 2025-3-31

ステータス: 未完了
——————–

Python コード例/

タップして出力結果例を表示
# グローバル変数 tasks を宣言
tasks = []

# タスク情報を追加する関数
def add_task(task_name, deadline, status):
    global tasks
    # タスク情報を辞書として作成
    task = {
        "task_name": task_name,
        "deadline": deadline,
        "status": status
    }
    # タスク情報をリストに追加
    tasks.append(task)

# タスク情報を表示する関数
def display_tasks():
    global tasks
    print("\nタスク情報:")
    for task in tasks:
        print(f"タスク名: {task['task_name']}")
        print(f"締め切り日: {task['deadline']}")
        print(f"ステータス: {task['status']}")
        print("----------------------")

# ユーザー入力を受け付けてタスク情報を追加
task_name = input("タスク名を入力してください: ")
deadline = input("締め切り日を入力してください (YYYY-MM-DD): ")
status = input("ステータスを入力してください (例: 未完了, 完了): ")

# タスク情報を追加
add_task(task_name, deadline, status)

# タスク情報を表示
display_tasks()

Python コーディング問題 4:シンプルな支出管理アプリケーション

プログラム説明

このプログラムは、ユーザーの支出を管理します。ユーザーは支出の詳細(支出項目、金額、日付)を3回繰り返し入力し、保存された支出情報の合計金額を表示します。

目的

このプログラムを通じて、学習者は変数のスコープに関する理解を深め、グローバル変数とローカル変数の使い方を学びます。また、リスト内の数値を合計する方法を学びます。

コーディング指示

新しいPythonファイル expense_manager.py を作成する

  1. 任意のエディタを開き、新しいファイルを作成します。
  2. ファイル名を expense_manager.py として保存します。

グローバル変数 expenses を宣言する

  1. expenses という空のリストをグローバル変数として宣言します。

支出情報を管理するための関数 add_expense を定義する

  1. 次の引数を持つ関数 add_expense を定義します:
    item(支出項目)
    amount(金額)
    date(日付)
  2. 関数 add_expense 内で次の処理を行います:
    ・グローバル変数 expenses を更新し、支出情報を辞書形式でリストに追加します。

支出の合計金額を表示するための関数 display_total_expense を定義する

  1. display_total_expense 関数内で、グローバル変数 expenses に保存されている全ての支出情報の合計金額を表示します。
  2. 関数内で繰り返し文を使用して合計金額を計算します。

ユーザー入力を受け付けて支出情報を追加し、表示する

  1. input 関数を使って支出項目、金額、日付を入力します。
  2. 支出情報を追加するために add_expense 関数を呼び出します。
  3. 1.2.の操作を3回繰り返します。
  4. display_total_expense 関数を呼び出して、合計金額を表示します。

出力結果例

タップして出力結果例を表示

支出項目を入力してください: 交際費
金額を入力してください: 3500
日付を入力してください (YYYY-MM-DD): 2025-03-02

支出項目を入力してください: 食費
金額を入力してください: 1500
日付を入力してください (YYYY-MM-DD): 2025-03-06

支出項目を入力してください: 交通費
金額を入力してください: 530
日付を入力してください (YYYY-MM-DD): 2025-03-06

支出の合計金額: 5530 円

Python コード例/

タップして出力結果例を表示
# グローバル変数 expenses を宣言
expenses = []

# 支出情報を追加する関数
def add_expense(item, amount, date):
    global expenses
    # 支出情報を辞書として作成
    expense = {
        "item": item,
        "amount": amount,
        "date": date
    }
    # 支出情報をリストに追加
    expenses.append(expense)

# 支出の合計金額を表示する関数
def display_total_expense():
    global expenses
    total = 0
    # 合計金額を計算
    for expense in expenses:
        total += expense['amount']
    print(f"\n支出の合計金額: {total} 円")

#「支出項目」「金額」「日付」の入力、「支出情報の追加」を3回繰り返す
for i in range(3):
    # ユーザー入力を受け付けて支出情報を追加
    item = input("支出項目を入力してください: ")
    amount = int(input("金額を入力してください: "))
    date = input("日付を入力してください (YYYY-MM-DD): ")
    #改行
    print("")

    # 支出情報を追加
    add_expense(item, amount, date)

# 支出の合計金額を表示
display_total_expense()
(Visited 5 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次