![見出し画像](https://assets.st-note.com/production/uploads/images/9712953/rectangle_large_type_2_8efc73735752351983a2c15a7b8ea645.jpeg?width=1200)
Photo by
matsurimusic
[Python]28行で作るターミナル本棚
1.何を作るのか
ターミナル上で本棚の機能をもつオブジェクトを作ります。本棚の機能は以下の3点としました。
1.本棚に本を追加する機能
2.本棚にある本の情報を一覧取得できる機能
3.本棚から本を取り除く(削除する)機能
2.コード
class BookShelf:
def __init__(self, name):
self.bk_sh = {}
self.name = name
def __str__(self):
message = "本棚[{0}]".format(self.name)
return message
def add_book(self, title, author):
self.bk_sh[title] = author
print("追加したよ( ̄・ω・ ̄)")
def list_book(self):
if len(self.bk_sh) == 0:
print("棚には何も追加されていません")
else:
print("{0:<10}| {1:<15}".format("Title", "Author"))
print("{0}".format("-"*25))
for title, author in self.bk_sh.items():
print("{0}| {1}".format(title, author))
print("{0}".format("-"*25))
def remove_book(self, title):
del_flag = int(input("削除していいの(´・ω・`)?[0:NG/1:OK]"))
if del_flag:
rm_book_author = self.bk_sh.pop(title)
print("{0}(著):{1}を削除しました".format(rm_book_author, title))
else:
pass
#インスタンス
shelf = BookShelf("お気に入り")
#インスタンスしたオブジェクトの名前
print(shelf)
#追加
shelf.add_book("論語と算盤", "渋沢栄一")
shelf.add_book("脳・心・人工知能", "甘利俊一")
shelf.add_book("留魂録", "吉田松陰")
#一覧表示
shelf.list_book()
#削除
shelf.remove_book("留魂録")
3.実行結果
本棚[お気に入り]
追加したよ( ̄・ω・ ̄)
追加したよ( ̄・ω・ ̄)
追加したよ( ̄・ω・ ̄)
Title | Author
-------------------------
論語と算盤| 渋沢栄一
脳・心・人工知能| 甘利俊一
留魂録| 吉田松陰
-------------------------
4.実際はこう使いたい
クラスの定義の部分のみを記述し、ファイル名をbook_shelf.pyとします。
そこからシェル上でインポートして上記のインスタンス以降のコードを書いて行くのが直感的でわかりやすいと思います。
>>> from book_shelf import BookShelf
>>> shelf = BookShelf("お気に入り")
>>> shelf.add_book("論語と算盤", "渋沢栄一")
追加したよ( ̄・ω・ ̄)