2017-02-13 9 views
0

Ich bin neu bei Python. My Issue- müssen den raw_input beenden, wenn keine Eingabe übergeben wird Ich frage im Grunde Benutzer für die Anzahl der Schlüssel-Wert-Paare zum Wörterbuch hinzugefügt werden. Dann fügen Sie die Schlüssel-Wert-Paare im Wörterbuch hinzu. Späteres Abfragen des Wörterbuchs, das einen Wert ergeben soll, wenn der Schlüssel existiert, sonst drucken Sie Not found.Beenden von raw_input basierend auf dem ASCII-Wert der Zeichenfolge

Ich suchte den Stack Overflow und fand Lösung in Bezug auf Timer, aber ich versuche, Ord-Funktion verwenden, um ASCII-Wert der Zeichenfolge zu erhalten und überprüfen Sie es gegen Null, die Ascii-Wert von 0 ist. Mein Code scheint nicht zu beenden, Bitte beachten Sie die notwendigen Änderungen im Code.

finden Sie den Code, den ich im Programm bin mit:

def convert_to_ascii(text): 
    return "".join(str(ord(char)) for char in text) 


n=int(raw_input().rstrip()) 
phonebook = dict(raw_input().split() for i in range(n)) 
print phonebook 


list1=[] 
while True: 
    choice = raw_input() 
    temp=convert_to_ascii(choice) 
    print temp 
    if temp != '0': 
     list1.append(choice) 
    else: 
     break 

for word in list1: 
    if word in phonebook : 
     print '{0}={1}'.format(word,phonebook[word]) 
    else: 
     print 'Not found' 
+0

Bitte formatieren Code mit den mitgelieferten Tool. Auf dieser Seite geht es nicht um Hilfe für kleine Programme, sondern für spezielle Programmierfragen. Was ist die Frage hier? Was hast du probiert? – jdv

Antwort

0

Sie sollten die leere Zeichenkette haben '' statt '0' als Scheck. Dieser Code hat für mich funktioniert. Ich habe auch einige Drucke in den raw_inputs mich durch den Code aussehen zu helfen, aber die einzige Änderung, die der '0' zählt, ist zu '':

def convert_to_ascii(text): 
    return "".join(str(ord(char)) for char in text) 


n=int(raw_input('How many entries in your phonebook?\n').rstrip()) 
phonebook = dict(raw_input('Please enter "[name] [number]" for entry '+str(i+1)+':\n').split() for i in range(n)) 
print phonebook 


list1=[] 
while True: 
    choice = raw_input('Who do you want to choose?\n') 
    temp=convert_to_ascii(choice) 
    if temp != '': #<-- changed to empty string from '0' 
     list1.append(choice) 
    else: 
     break 

for word in list1: 
    if word in phonebook : 
     print '{0}={1}'.format(word,phonebook[word]) 
    else: 
     print word,'was not found' 
Verwandte Themen