見出し画像

Python入門【必修編】第8章やってみよう8-7について思ったこと

8-7.音楽のアルバムについての辞書データを作成する関数作成。
解答を読むと出力がひとつずつしか出来なくて、辞書っぽくないなぁと個人的に感じまして、自分なりに書いてみました。
一応、予測した挙動とは一致してるのでヨシ……?🤔

album_dict = {}

def make_album(id, artist, title, track=0):
     """アルバムに関する情報を含んだ辞書を作成する"""
     album_dict[id]={
          'artist': artist.title(),
          'title': title.title(),
     }
     if track:
          album_dict[id]['track']= track
     return album_dict

make_album(1, 'queen', 'rapsodia')
make_album(3, 'ずっと真夜中でいいのに', '潜潜話', 13)
make_album(2, 'Carpenters', 'Only Yesterday')
{1: {'artist': 'Queen', 'title': 'Rapsodia'}, 3: {'artist': 'ずっと真夜中でいいのに', 'title': 'せんせんわや', 'track': 20}, 2: {'artist': 'Carpenters', 'title': 'Only Yesterday'}}

辞書入力とその結果

start_message = ''

while start_message != '終了':
        album_id = input("アルバムIDを入力してください: ")
        album_title = input("アルバムのタイトルを入力してください: ")
        album_artist = input("アルバムのアーティストを入力してください: ")
        album_track = input("トラック数を入力してください: ")
        make_album(album_id, album_artist, album_title, album_track)
        start_message = input("アルバムを続けて登録しますか?終わりにする場合は「終了」と入力してください: ")
        if start_message == '終了':
             print(start_message)

for id, value in album_dict.items():
    print(value)
アルバムIDを入力してください: 4
アルバムのタイトルを入力してください: Corridor
アルバムのアーティストを入力してください: 須田景凪
トラック数を入力してください: 13
アルバムを続けて登録しますか?終わりにする場合は「終了」と入力してください: 終了
終了
{'artist': 'Queen', 'title': 'Rapsodia'}
{'artist': 'ずっと真夜中でいいのに', 'title': '潜潜話', 'track': 13}
{'artist': 'Carpenters', 'title': 'Only Yesterday'}
{'artist': '須田景凪', 'title': 'Corridor', 'track': '13'}

【参考】Pythonで2次元の辞書に要素を追加する

https://toeming.hatenablog.com/entry/2022/02/22/python_add_item_to_2dimDict

公式回答

https://github.com/takanory/saitan-python/blob/master/%E3%82%84%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86_%E5%BF%85%E4%BF%AE%E7%B7%A8/chapter08/8_7_album.py

この記事が気に入ったらサポートをしてみませんか?