2016-12-23 2 views
-1

Wie würde ich nach meinem Wörterbuch suchen? Wenn Kinderergebnis größer oder gleich 100 ist (sie sollten nur 8 Geschenke erhalten), zwischen 50 und 100 (5 erhalten) und unter 50 (get 2)Wie würde ich Elemente des Python-Wörterbuchs auswählen, die größer als ein bestimmter Wert sind

People={"Dan":22, 
     "Matt":54, 
     "Harry":78, 
     "Bob":91} 

def displayMenu(): 
    print("1. Add presents") 
    print("2. Show score of child") 
    print("3. Add Student") 
    print("4. Delete students") 
    print("5. Show text File: ") 
    print("6. Quit") 
    choice = int(input("Enter your choice : ")) 
    while 6< choice or choice< 1: 
     choice = int(input("Invalid. Re-enter your choice: ")) 
    return choice 

def addpresents(): 
    name= input('Enter child for their score: ') 
    if name in People: 
     print(People[name]) 


option = displayMenu() 

while option != 6: 
    if option == 1: 
     addpresents() 
    if option == 3: 
     addstudents() 
    if option == 4: 
     delete() 
    if option== 5: 
     txtfile() 
    elif option == 2: 
     print("Program terminating") 

option = displayMenu() 
+2

Können Sie erklären, was es ist der Code, dass die Erfüllung Erwartung tut nicht wahr? Beschränken Sie sich auf [mcve], damit der Leser schneller zu Ihrem Problem gelangt. An diesem Punkt bitten Sie den Leser, Ihren Code zu übernehmen, ihn auszuführen und ihn vollständig zu beheben. Sie sollten auf den Bereich des Fehlers hinweisen. – idjaw

Antwort

3

nicht sicher, ob ich das richtig verstanden, aber wenn Sie ein Wörterbuch erstellen möchten basierend auf einem Eingangs Wörterbuch und eine Bedingung, können Sie verwenden, um eine dict-comprehension:

People={"Dan":122, 
     "Matt":54, 
     "Harry":78, 
     "Bob":91} 

too_many = {key: value for key, value in People.items() if value >= 100} 
print(too_many) # -> {'Dan': 122} 
0

Sie können das Wörterbuch durchlaufen, um die Person und die Punktzahl auszuwählen:

People={"Dan":22,"Matt":54,"Harry":78,"Bob":91} 
for person,score in People.items(): 
    print (person,score) 
# output: 
# Dan 22 
# Harry 78 
# Matt 54 
# Bob 91 

Verwenden if in der Schleife richtige Anzahl von Geschenken zu wählen:

People={"Dan":22,"Matt":54,"Harry":78,"Bob":91} 
for person,score in People.items(): 
    if score>100: 
     print (person,'8 presents') 
    elif score<50: 
     print (person,'2 presents') 
    else: 
     print (person,'5 presents') 
# output: 
# Dan 2 presents 
# Harry 5 presents 
# Matt 5 presents 
# Bob 5 presents 
Verwandte Themen