728x90
λ°μν
νλ‘κ·Έλλ° μΈκ³λ₯Ό νꡬν©μλ€.
* decorator μ¬μ©ν μ€μ΅μ μλ κ²μκΈ μ°Έκ³ λ°λλλ€.
* νμκ°μ κΈ°λ₯ μΆκ°ν μ€μ΅μ μλ κ²μκΈ μ°Έκ³ λ°λλλ€.
λμ μ κ³ /λμΆ/λ°λ© κ΄λ¦¬λ₯Ό μν ν€μ€μ€ν¬ νμ΄μ¬ νλ‘κ·Έλ¨ μ€μ΅
[λ―Έμ
]
λμλͺ©λ‘ : μλ‘μ΄ μ±
μ΄ λμκ΄μ [μ
κ³ ]λμμ λ νλ‘κ·Έλ¨ μμ±
λμλμΆ : λμ λͺ©λ‘μμ μμ μ±
μ λΉλ¦¬κ³ μ ν λ [λμΆ] νλ‘κ·Έλ¨ μμ±
λμ λ°λ© : λμΆν λμλ₯Ό [λ°λ©]νκ³ μ ν λ νλ‘κ·Έλ¨ μμ±
μ’
λ£νκΈ° : μ’
λ£νκΈ°μ λν νλ‘κ·Έλ¨ μμ±
λμ μ
κ³ /λμΆ/λ°λ©/μ’
λ£ μ€ μνλ κ²μ μ ννμ λ μ λ΄μ© μνν©λλ€.
νλ‘κ·Έλ¨μ μ’
λ£νκΈ° μ κΉμ§λ μ λ΄μ©μ λꡬλ μ§ μλΉμ€λ₯Ό λ°μ μ μλλ‘ λ°λ³΅ μ€ν
λμμ λν νμΈ κ°μ μμ λ‘κ² μ μν΄μ μ§ν
[쑰건]
class μμ±νμ¬ μ²λ¦¬
<μμ± μ½λ1>
### κΈ°λ₯μ μνν ν΄λμ€(λͺ¨λ or λΌμ΄λΈλ¬λ¦¬) μ μ
class LibraryKiosk :
### ν΄λμ€ μμ±μ μ μ
def __init__(self) :
### λμ λͺ©λ‘μ μ μ₯ν λμ
λ리 λ³μ μμ±
# - λμλ²νΈ, λμμ λͺ©, λμμ¬κ³ μλ μ 보 λ΄κΈ°
self.books = {}
print("ν΄λμ€ μμ± λμμ΅λλ€.")
### λμμ
κ³ κΈ°λ₯ μ μνκΈ°
def add_book(self, book_id, title, quantity) :
## μ
κ³ ν λμλ²νΈκ° μ‘΄μ¬νλμ§ νμΈ
# - μ‘΄μ¬νλ€λ©΄ μλλ§ μ¦κ°μν€κΈ°
if book_id in self.books :
# self.books[book_id]["quantity"] = self.books[book_id]["quantity"] + quantity
self.books[book_id]["quantity"] += quantity
# - μ‘΄μ¬νμ§ μλλ€λ©΄
else :
# {"001" : {"title":"νμ΄μ¬ κΈ°μ΄", "quantity":4}}
self.books[book_id] = {"title":title, "quantity":quantity}
print(f"λμλ²νΈ:{book_id} / μ λͺ© : {title} / μ
κ³ μλ : {quantity} μ
κ³ μ±κ³΅!!" )
### λμΆ κΈ°λ₯ μ μνκΈ°
def borrow_book(self, book_id) :
### λμΆνκ³ μνλ λμλ²νΈμ ν΄λΉνλ μ¬κ³ μλ νμΈνκΈ°
if (book_id in self.books) and (self.books[book_id]["quantity"] > 0) :
#self.books[book_id]["quantity"] = self.books[book_id]["quantity"] - 1
self.books[book_id]["quantity"] -= 1
print(f"λμλ²νΈ:{book_id} / μ λͺ©:{self.books[book_id]['title']} / λ¨μμ¬κ³ μλ:{self.books[book_id]['quantity']}")
else :
print("λμκ° μ‘΄μ¬νμ§ μκ±°λ, λμΆν μ¬κ³ κ° μμ΅λλ€.")
### λ°λ© κ°λ₯ μ μνκΈ°
def return_book(self, book_id) :
# - λ°λ©ν λμλ²νΈκ° λμλͺ©λ‘μ μλμ§ νμΈ
if book_id in self.books :
self.books[book_id]["quantity"] += 1
print(f"λμλ²νΈ:{book_id} / μ λͺ©:{self.books[book_id]['title']} / λ¨μμ¬κ³ μλ:{self.books[book_id]['quantity']}")
# - ν΄λΉ λμκ° λͺ©λ‘μ μλ€λ©΄
else :
print("ν΄λΉ λμκ° μ‘΄μ¬νμ§ μμ΅λλ€.")
### 2. μ΅μ΄μ μ€νν κΈ°λ₯(ν¨μ) μ μ
def main():
### ν΄λμ€ μμ±νκΈ°
# - μ΅μ΄ νλ² : νλ‘κ·Έλ¨μ΄ μ’
λ£λλ©΄ ν΄λμ€λ μλ©Έ(λ©λͺ¨λ¦¬ κ³΅κ° μμ )λ©λλ€.
kiosk = LibraryKiosk()
print(kiosk)
#print('μ±κ³΅!')
###3. λ©λ΄ μ ν 보μ¬μ£ΌκΈ°
while True:
print('<λμ ν€μ€μ€ν¬ λ©λ΄>')
print('1. λμ μ
κ³ ')
print('2. λμ λμΆ')
print('3. λμ λ°λ©')
print('4. μ’
λ£')
choice = input('μνλ λ²νΈ(1~4)λ₯Ό μ ννμΈμ : ')
if choice == '1':
# print('μ
κ³ μ ν')
book_id = input('λμ λ²νΈλ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ : ')
title = input('λμ μ λͺ©μ μ
λ ₯ν΄ μ£ΌμΈμ : ')
quantity = int(input('μ
κ³ ν κΆμλ₯Ό μ
λ ₯ν΄ μ£ΌμΈμ : '))
# print(f"{book_id} / {title} / {quantity}")
# - ν΄λμ€ λ΄λΆμ μ
κ³ κΈ°λ₯ νΈμΆνκΈ°
kiosk.add_book(book_id, title, quantity)
elif choice == '2':
#print('λμΆ μ ν')
book_id = input("λμΆν λμλ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ :")
### ν΄λμ€ λ΄λΆμ λμΆ κΈ°λ₯ νΈμΆνκΈ°
kiosk.borrow_book(book_id)
elif choice == '3':
#print('λ°λ© μ ν')
book_id = input("λ°λ©ν λμλ²νΈλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ :")
## ν΄λμ€ λ΄λΆμ λ°λ© κΈ°λ₯ νΈμΆνκΈ°
kiosk.return_book(book_id)
elif choice == '4':
print('μ’
λ£ μ ν')
break
else:
print('μλͺ» μ ννμμ΅λλ€. λ€μ μ νν΄ μ£ΌμΈμ!')
### 1. μ΅μ΄ μ½λ μμ
if __name__ == "__main__":
### μ΅μ΄μ μ€νν κΈ°λ₯(ν¨μ) νΈμΆ
main()
<μ€ν νλ©΄>
<μμ± μ½λ 2>
class Library:
def __init__(self):
self.books = []
self.borrowed_books = []
def add_book(self, book_name):
self.books.append(book_name)
print(f"'{book_name}' μ±
μ΄ λμκ΄μ μ
κ³ λμμ΅λλ€.")
def borrow_book(self, book_name):
if book_name in self.books:
self.books.remove(book_name)
self.borrowed_books.append(book_name)
print(f"'{book_name}' μ±
μ΄ λμΆλμμ΅λλ€.")
else:
print(f"'{book_name}' μ±
μ λμκ΄μ μμ΅λλ€.")
def return_book(self, book_name):
if book_name in self.borrowed_books:
self.borrowed_books.remove(book_name)
self.books.append(book_name)
print(f"'{book_name}' μ±
μ΄ λ°λ©λμμ΅λλ€.")
else:
print(f"'{book_name}' μ±
μ λμΆλμ§ μμμ΅λλ€.")
library = Library()
while True:
print("\n1: λμ μ
κ³ , 2: λμ λμΆ, 3: λμ λ°λ©, 4: μ’
λ£νκΈ°")
user_input = input("μνλ κΈ°λ₯μ μ ννμΈμ: ")
if user_input == '1':
book_name = input("μ
κ³ ν λμμ μ΄λ¦μ μ
λ ₯νμΈμ: ")
library.add_book(book_name)
elif user_input == '2':
book_name = input("λμΆν λμμ μ΄λ¦μ μ
λ ₯νμΈμ: ")
library.borrow_book(book_name)
elif user_input == '3':
book_name = input("λ°λ©ν λμμ μ΄λ¦μ μ
λ ₯νμΈμ: ")
library.return_book(book_name)
elif user_input == '4':
print("λμκ΄ μμ€ν
μ μ’
λ£ν©λλ€.")
break
else:
print("μ¬λ°λ₯Έ λ²νΈλ₯Ό μ
λ ₯νμΈμ.")
<μ€ν νλ©΄>
μ΄μ κ°μ λ°©μμΌλ‘ λμ μ κ³ /λμΆ/λ°λ© κ΄λ¦¬λ₯Ό μν νλ‘κ·Έλ¨μ μμ±ν μ μμ΅λλ€.
728x90
λ°μν