2017-12-17 3 views
-1

Ich mache ein einfaches Programm, wo Sie Geschenke von verschiedenen Personen anzeigen, hinzufügen oder entfernen können. Ich versuche, auf eine Liste in einem Wörterbuch namens people {} zuzugreifen und sie mit einer anderen Funktion zu bearbeiten. Wie kann ich es tun?Python: Zugriff auf die Liste im Wörterbuch in verschiedenen Funktionen

def people(): 

    people = {"Alan":["skate","computer"], 
       "John":["sweater","socks"]} 

    print("""Select one option: 

    1. Alan 
    2. John""") 

    gifts(people) 

def gifts(people): 

    person = input() 

    if person == "1": 
     print("The gifts of Alan are: %s" % people["Alan"]) 
     return person 
     gift_options() 

    elif person == "2": 
     print("The gifts of John are: %s" % people["John"]) 
     return person 
     gift_options() 
    else: 
     people() 

def gift_manage(person): 

    print ("""Select an option: 

    1. Add gift 
    2. Remove gift 
    3. Return to list of availible people""") 

    option = input() 

    if option == "1": 
     print ("What gift would you like to add to %s? " % person) 
     new_gift = input() 
     people[person].append(str(new_gift)) 
+1

Es sieht aus, als ob Sie es in Ordnung tun. Wenn Sie eine Fehlermeldung erhalten, sollten Sie die Frage mit dem Text des gesamten Tracebacks aktualisieren. – quamrana

+0

@ babygame0ver In Bezug auf Ihre vorgeschlagene Bearbeitung bin ich mir ziemlich sicher, dass das OP in Python3 schreibt. Bitte fügen Sie seinem Code keine alte Python 2.7-Syntax hinzu. 'raw_input' ist nur' Eingabe' in Python3. – m00am

+0

Ja, aber es gab ein Problem im Variablennamen und stackoverflow haben eine Regel, dass Sie den Beitrag bearbeiten sollten, wenn die falschen Zeichen> = 6. – babygame0ver

Antwort

1
def people_gifts(): 

    people = {"Alan":["skate","computer"], 
       "John":["sweater","socks"]} 

    print("""Select one option: 

    1. Alan 
    2. John""") 

    #gifts(people) 
    return people 

def gifts(people): 

    person = input() 

    if person == "1": 
     print("The gifts of Alan are: %s" % people["Alan"]) 
     return person 

    elif person == "2": 
     print("The gifts of John are: %s" % people["John"]) 
     return person 
    else: 
     people_gifts() 

def gift_manage(person,people): 
    print("\n\n") 
    print(person,"has",people[person]) 
    print ("""Select an option: 

    1. Add gift 
    2. Remove gift 
    3. Return to list of availible people 
    4. Quit""") 

    option = input() 

    if option == "1": 
     print ("What gift would you like to add to %s? " % person) 
     new_gift = input() 
     people[person].append(str(new_gift)) 
     print ("gift added",people[person]) 

    elif option == "2": 
     print ("What gift would you like to remove to %s? " % person) 
     remove_gift = input() 
     if(remove_gift in people[person]): 

      people[person].remove(str(remove_gift)) 
      print ("gift removed",people[person]) 
     else: 
      print ("Sorry gift does not exist") 

    elif option == "3": 
     print ("Available people : ",list(people.keys())) 

    elif option == "4": 
     print ("Exiting...") 
     return people 

    else: 
     print ("Try again") 
     gift_manage(person,people) 

    print("Do you want to try again? Press 1") 
    choice=input() 
    if(choice=="1"): 
     gift_manage(person,people) 
    return people 


people=people_gifts() 
gifts(people) 
gift_manage("Alan",people) 

Hinzufügen Geschenk

Adding a gift

ein gültiges Geschenk Entfernen

Removing a valid gift

ungültig Geschenk Entfernen

Removing invalid gift

Verwandte Themen