← クエスト一覧

クエスト85:総合問題 - 図書館システム

スライド 1 / 6
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 85 / 85

クエスト85:総合問題 - 図書館システム

発展 +10 XP
🏠
今回の課題
図書館に3冊を追加し、タイトル順に「タイトル (著者)」の形で一覧表示しよう。(総合問題)
📖 解説を見る
🏛️ 総合問題:図書館システムを作ろう!

これまで学んだクラス・リスト・sorted・f文字列を組み合わせた総まとめです。

✏️ 用意されている部品:
Book クラス:本1冊(titleauthor)を表す(完成済み)
Library クラス:空のリスト self.books を持つところまで完成済み
・並べ替えは Q60 で学んだ sorted(リスト, key=lambda x: 基準) が使える
・本の属性は b.titleb.author で取り出せる

📋 作るもの: Library にメソッドを2つ追加します。
add(self, book) … 受け取った本を self.books に追加する(表示はしない)
list_sorted(self) … self.books をタイトル順に並べ替え、1冊ずつ「タイトル (著者)」の形で表示する
 (タイトルのあとに半角スペース、著者を半角カッコで囲む)

💡 どこで使う?

「データを持つクラス」と「それらをまとめて管理するクラス」に分ける形は、実アプリの基本設計そのものです。商品と注文、ユーザーと投稿など、多くのシステムがこの『個々のデータ+それを束ねる管理役』という組み立てでできています。

⚠️ ポイント:
key=lambda b: b.title のように書くと、本のタイトルを基準に並べ替えられる
b.titleb.author で本の属性を取り出す
・文字列の並び順は文字コード順なので、アルファベットで始まる題名がカタカナより先に来る
ヒントを見る
add は受け取った本をリストに追加するだけ(append)。list_sorted は sorted に key を渡してタイトル順にしてから、for で1冊ずつ f文字列で組み立てて表示しよう。
期待する出力
Python入門 (山田)
Web開発 (佐藤)
アルゴリズム (田中)
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: Library に search(keyword) メソッドを追加して 'Python' を含む本のタイトルを表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
Python入門 Python発展
未挑戦

問題 2: Library に @property count を追加して蔵書数を「蔵書数: 3」と表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
蔵書数: 3
未挑戦

問題 3: defaultdict で著者ごとに本をグループ化して「山田: 2冊」のように表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
山田: 2冊 田中: 1冊
🏆
Pythonコース 完全制覇!
全クエストをクリアしました!すごい!
🗺️ クエスト一覧へ Xでシェア
コピーしました!