Python コーディング問題 第18回『 dictの基本操作と利用 』

Pythonコーディング18

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

目次

学習の進め方-

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

Python コーディング問題 1:コンタクトリストの管理

プログラム説明

コンタクトリストを管理するために、dictの作成、更新、削除、および検索機能を利用するプログラムを作成します。

目的

この問題では、dictの基本操作を学び、キーとバリューの関係を理解し、実生活でのコンタクトリスト管理に役立てることを目的とします。

コーディング指示

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

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

以下の手順に従ってプログラムを作成してください。

  1. 辞書 contacts を作成する
    • contacts という変数に、キーが名前、値が電話番号の辞書 {“Alice”: “090-1234-5678”, “Bob”: “080-2345-6789”, “Charlie”: “070-3456-7890”} を代入します。
  2. 新しいコンタクトを追加する
    • キーが “David”、値が “060-4567-8901” のエントリーを contacts に追加します。
    • print 関数を使用して更新後の contacts を表示します。
  3. 既存のコンタクトを更新する
    • “Alice” の電話番号を “090-9876-5432” に更新します。
    • print 関数を使用して更新後の contacts を表示します。
  4. コンタクトを削除する
    • “Bob” のエントリーを contacts から削除します。
    • print 関数を使用して更新後の contacts を表示します。
  5. 特定のコンタクトを検索する
    • in 演算子を使用して “Charlie” が contacts に存在するか確認し、結果を表示します。
    • get メソッドを使用して “Eve” の電話番号を取得し、存在しない場合は “not found” と表示します。

出力結果例

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

コンタクトを追加後:
{‘Alice’: ‘090-1234-5678’, ‘Bob’: ‘080-2345-6789’, ‘Charlie’: ‘070-3456-7890’, ‘David’: ‘060-4567-8901’}
コンタクトを更新後:
{‘Alice’: ‘090-9876-5432’, ‘Bob’: ‘080-2345-6789’, ‘Charlie’: ‘070-3456-7890’, ‘David’: ‘060-4567-8901’}
コンタクトを削除後:
{‘Alice’: ‘090-9876-5432’, ‘Charlie’: ‘070-3456-7890’, ‘David’: ‘060-4567-8901’}
Charlie が存在するか確認: True
Eve の電話番号: not found

Python コード例

タップして出力結果例を表示
# コンタクトリストを作成
contacts = {"Alice": "090-1234-5678", "Bob": "080-2345-6789", "Charlie": "070-3456-7890"}

# 新しいコンタクトを追加
contacts["David"] = "060-4567-8901"
print("コンタクトを追加後:")
print(contacts)

# 既存のコンタクトを更新
contacts["Alice"] = "090-9876-5432"
print("コンタクトを更新後:")
print(contacts)

# コンタクトを削除
del contacts["Bob"]
print("コンタクトを削除後:")
print(contacts)

# 特定のコンタクトを検索
print("Charlie が存在するか確認:", "Charlie" in contacts)
print("Eve の電話番号:", contacts.get("Eve", "not found"))

Python コーディング問題 2:ショッピングカートの管理

プログラム説明

ショッピングカートを管理するために、dictの作成、更新、削除、および合計金額計算機能を利用するプログラムを作成します。

目的

この問題では、dictの基本操作を学び、キーとバリューの関係を理解し、実生活でのショッピングカート管理に役立てることを目的とします。

コーディング指示

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

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

以下の手順に従ってプログラムを作成してください。

  1. 辞書 cart を作成する
    • cart という変数に、キーが商品名、値が価格の辞書 {"apple": 100, "banana": 150, "orange": 200} を代入します。
  2. 新しい商品を追加する
    • キーが “grape”、値が 250 のエントリーを cart に追加します。
    • print 関数を使用して更新後の cart を表示します。
  3. 既存の商品を更新する
    • “banana” の価格を 180 に更新します。
    • print 関数を使用して更新後の cart を表示します。
  4. 商品を削除する
    • “apple” のエントリーを cart から削除します。
    • print 関数を使用して更新後の cart を表示します。
  5. カート内の商品を表示し、合計金額を計算する
    • for ループを使用して cart 内の各商品の名前と価格を表示します。
    • カート内の全商品の合計金額を計算し、表示します。

出力結果

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

商品を追加後:
{‘apple’: 100, ‘banana’: 150, ‘orange’: 200, ‘grape’: 250}
商品を更新後:
{‘apple’: 100, ‘banana’: 180, ‘orange’: 200, ‘grape’: 250}
商品を削除後:
{‘banana’: 180, ‘orange’: 200, ‘grape’: 250}
banana: ¥180
orange: ¥200
grape: ¥250
合計金額: ¥630

Python コード

# ショッピングカートを作成
cart = {"apple": 100, "banana": 150, "orange": 200}

# 新しい商品を追加
cart["grape"] = 250
print("商品を追加後:")
print(cart)

# 既存の商品を更新
cart["banana"] = 180
print("商品を更新後:")
print(cart)

# 商品を削除
del cart["apple"]
print("商品を削除後:")
print(cart)

# カート内の商品を表示し、合計金額を計算
total_price = 0
for item, price in cart.items():
    print(f"{item}: ¥{price}")
    total_price += price
print(f"合計金額: ¥{total_price}")

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

プログラム説明

家庭の予算管理のために、支出項目とその金額を管理するアプリケーションを作成します。このプログラムでは、支出項目の追加、削除、更新、検索、および集計を行います。

目的

この問題では、辞書の基本操作やマッピングビューオブジェクトの利用方法を学び、キーとバリューの操作に慣れることを目的とします。

コーディング指示

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

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

以下の手順に従ってプログラムを作成してください。

  1. 辞書 expenses を作成する
    • expenses という変数に辞書 {"rent": 70000, "groceries": 30000, "utilities": 10000, "entertainment": 15000} を代入します。
  2. 支出項目の追加
    • input 関数を使用して新しい支出項目と金額を入力し、expenses 辞書に追加するコードを記述します。
  3. 支出項目の削除
    • input 関数を使用して削除する支出項目を入力し、expenses 辞書から削除するコードを記述します。
  4. 支出項目の更新
    • input 関数を使用して更新する支出項目と新しい金額を入力し、expenses 辞書の該当項目を更新するコードを記述します。
  5. 支出項目の検索
    • input 関数を使用して検索する支出項目を入力し、該当する金額を表示するコードを記述します。
  6. 全支出項目と金額の表示
    • expenses.items() を使用して全支出項目と金額を表示するコードを記述します。
  7. 総支出金額の計算
    • sum 関数を使用して expenses.values() の総和を計算し、総支出金額を表示するコードを記述します。

出力結果

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

追加する支出項目: study
studyの金額: 20000
削除する支出項目: entertainment
entertainmentを削除しました。
更新する支出項目: study
studyの新しい金額: 40000
studyの金額を更新しました。
検索する支出項目: study
studyの金額は40,000円です。

全支出項目と金額:
rent: 70,000円
groceries: 30,000円
utilities: 10,000円
study: 40,000円

総支出金額: 150,000円

Python コード

# 予算管理アプリケーション
expenses = {"rent": 70000, "groceries": 30000, "utilities": 10000, "entertainment": 15000}

# 支出項目の追加
new_item = input("追加する支出項目: ")
new_amount = int(input(f"{new_item}の金額: "))
expenses[new_item] = new_amount

# 支出項目の削除
remove_item = input("削除する支出項目: ")
if remove_item in expenses:
    del expenses[remove_item]
    print(f"{remove_item}を削除しました。")
else:
    print(f"{remove_item}は見つかりませんでした。")

# 支出項目の更新
update_item = input("更新する支出項目: ")
if update_item in expenses:
    new_amount = int(input(f"{update_item}の新しい金額: "))
    expenses[update_item] = new_amount
    print(f"{update_item}の金額を更新しました。")
else:
    print(f"{update_item}は見つかりませんでした。")

# 支出項目の検索
search_item = input("検索する支出項目: ")
if search_item in expenses:
    print(f"{search_item}の金額は{expenses[search_item]:,}円です。")
else:
    print(f"{search_item}は見つかりませんでした。")

# 全支出項目と金額の表示
print("\n全支出項目と金額:")
for item, amount in expenses.items():
    print(f"{item}: {amount:,}円")

# 総支出金額の計算
total_expense = sum(expenses.values())
print(f"\n総支出金額: {total_expense:,}円")

Python コーディング問題 4:図書館の書籍管理

プログラム説明

図書館の書籍管理のために、書籍のタイトルと著者を管理するアプリケーションを作成します。このプログラムでは、書籍の追加、削除、更新、検索、および全書籍の表示を行います

目的

この問題では、辞書の基本操作やマッピングビューオブジェクトの利用方法を学び、キーとバリューの操作に慣れることを目的とします。

コーディング指示

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

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

以下の手順に従ってプログラムを作成してください。

  1. 辞書 books を作成する
    • books という変数に辞書 {"Harry Potter and the Philosopher's Stone": "J.K. Rowling", "The Hobbit": "J.R.R. Tolkien", "The Chronicles of Narnia": "C.S. Lewis", "Percy Jackson & the Olympians": "Rick Riordan"} を代入します。
  2. 書籍の追加
    • input 関数を使用して新しい書籍のタイトルと著者を入力し、books 辞書に追加するコードを記述します。
  3. 書籍の削除
    • input 関数を使用して削除する書籍のタイトルを入力し、books 辞書から削除するコードを記述します。
  4. 書籍の更新
    • input 関数を使用して更新する書籍のタイトルと新しい著者を入力し、books 辞書の該当項目を更新するコードを記述します。
  5. 書籍の検索
    • input 関数を使用して検索する書籍のタイトルを入力し、該当する著者を表示するコードを記述します。
  6. 全書籍の表示
    • books.items() を使用して全書籍のタイトルと著者を表示するコードを記述します。

出力結果

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

追加する書籍のタイトル: Python
Pythonの著者: neugate
削除する書籍のタイトル: Python
Pythonを削除しました。
更新する書籍のタイトル: Python
Pythonは見つかりませんでした。
検索する書籍のタイトル: Python
Pythonは見つかりませんでした。

全書籍のタイトルと著者:
Harry Potter and the Philosopher’s Stone: J.K. Rowling
The Hobbit: J.R.R. Tolkien
The Chronicles of Narnia: C.S. Lewis
Percy Jackson & the Olympians: Rick Riordan

Python コード

# 図書館の書籍管理
books = {
    "Harry Potter and the Philosopher's Stone": "J.K. Rowling",
    "The Hobbit": "J.R.R. Tolkien",
    "The Chronicles of Narnia": "C.S. Lewis",
    "Percy Jackson & the Olympians": "Rick Riordan"
}

# 書籍の追加
new_title = input("追加する書籍のタイトル: ")
new_author = input(f"{new_title}の著者: ")
books[new_title] = new_author

# 書籍の削除
remove_title = input("削除する書籍のタイトル: ")
if remove_title in books:
    del books[remove_title]
    print(f"{remove_title}を削除しました。")
else:
    print(f"{remove_title}は見つかりませんでした。")

# 書籍の更新
update_title = input("更新する書籍のタイトル: ")
if update_title in books:
    new_author = input(f"{update_title}の新しい著者: ")
    books[update_title] = new_author
    print(f"{update_title}の著者を更新しました。")
else:
    print(f"{update_title}は見つかりませんでした。")

# 書籍の検索
search_title = input("検索する書籍のタイトル: ")
if search_title in books:
    print(f"{search_title}の著者は{books[search_title]}です。")
else:
    print(f"{search_title}は見つかりませんでした。")

# 全書籍の表示
print("\n全書籍のタイトルと著者:")
for title, author in books.items():
    print(f"{title}: {author}")
(Visited 34 times, 27 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

職業訓練校 エヌ・キャリア・アカデミー 講師の竹内です。
主にWebアプリケーション開発講座を担当しています。
初学者の方へ向けて、これからIT業界を歩んでいくための “その人なりの基準やものさし” を持てるような講義を心掛けています。
SE Mediaでも初学者の方がWebアプリケーション制作に役立つ記事を発信していきます!

コメント

コメントする

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

目次