2017-02-26 4 views
0

Ich versuche, ein kleines Bibliothek-Management-Systeme zu implementieren Python verwenden. Wir erhalten eine Funktionsliste. Die Funktionalität, auf der ich stecke, ist dieser Teil:Einfaches Bibliothek-Management-System mit Python

  • Implementieren Sie eine Python-Funktion, die ein Buch zur Bibliothek hinzufügt. Ihre Funktion sollte für das Buch ISBN fragt, Titel, Autor und wie viele Kopien erworben. Die Funktion sollte das Bibliotheksinventar (das Wörterbuch) aktualisieren, um das neue Buch aufzunehmen. Wenn das Buch bereits in der Bibliothek ist, sollte das System die Menge aktualisieren.

mein Wörterbuch ist wie folgt. Key = ISBN, Werte = Kopien/Titel/Verfasser

library = {4139770544441: [5,'Hello World','John'], 
      4139770544442: [2,'Red Sky','Mary'], 
      4139770544443: [8,'The Road','Chris']} 

Unten ist die Funktion ich habe ein Buch hinzuzufügen:

def add_book(key, amount, library): 
    for current_key in library.keys(): 
     if current_key == key: 
      library[current_key] = library[current_key] + amount 
      # amount updated 
      # get out of the loop and the function 
      return 


    #item doesn't exist in the list, add it with the specified amount 
    library[key] = amount 

#User inputs new book titles 
enter_copies = int(input('Please enter number of copies to add: ')) 
enter_title = input('Please enter the Title of the book: ') 
enter_author = input('Please enter the Author of the book: ') 



#relates to add_book Function 
add_book(enter_book, [enter_copies, enter_title, enter_author], library) 

Wenn es ein neues Buch ich es möchte das hinzufügen auf Wörterbuch und wenn es ein vorhandenes Buch ist, möchte ich, dass es die Anzahl der Kopien erhöht. Doch was geschieht, ist, dass es kommt noch hinzu, die ISBN-Nummer (Schlüssel) und die Werte auf am Ende unabhängig davon, ob es existiert oder nicht. Eine Hilfe wird sehr geschätzt.

Antwort

0

versuchen, die Funktion wie folgt zu schreiben:

def add_book(key, amount, library): 
    current_key = library.keys() 
    if key in current_key: 
     library[key][0] += amount[0] 
    else: 
     library[key] = amount 
    return library 
+0

und erinnere mich an den zurückgegebenen Wert 'library' DB (unabhängig von der Art der Datenbank mit den Sie verwenden) zu speichern, sonst nächste Mal, wenn Sie die' Bibliothek dict' erhalten Es ist das gleiche wie zuvor und nichts hat sich geändert. –

+0

Dank komischer Honig, das hat perfekt funktioniert. – vinnievienna