2016-06-20 12 views
0

Ich versuche, die Schleife zu brechen, sobald die Eingabe gedrückt wird, während Sie Daten in eine Datei schreiben. Das habe ich bisher. Ich will auch nicht die Anzahl der Zeit zu begrenzen, die Schleife entweder ausgeführt wird ... (Beispiel folgende Ausgabe ist)eine Schleife brechen, wenn Enter gedrückt wird

def main(): 
    myfile = open('friends.txt','w') 
    friend = input('Enter first name of friend or Enter to quit') 
    age = input('Enter age (integer) of this friend') 

while friend != '': 

    for n in range(): 
     friend = input('Enter first name of friend or Enter to quit') 
     age = input('Enter age (integer) of this friend') 

     myfile.write(friend +'\n') 
     myfile.write(str(age) +'\n') 

    myfile.close() 
main() 

Dies ist, wie die Ausgabe, wenn sein Recht RAN sein soll.

Enter first name of friend or Enter to quit Sally 
Enter age (integer) of this friend 20 
Enter first name of friend or Enter to quit Sam 
Enter age (integer) of this friend 24 
Enter first name of friend or Enter to quit 
File was created 
+1

'für n in range()' -> 'Typeerror: Bereich 1 Argumente erwartet, bekam 0' –

+1

Ist das der Einzug in Ihrem Code oder haben Sie es schlecht transkribiert? schlecht eingerückter Python-Code ist Unsinn – khelwood

Antwort

0

Sie hatten ein paar Fehler im Code, wie range() und Vertiefung mit und input für eine Zeichenfolge verwenden, wenn raw_input eine bessere Wahl gewesen sein mag.

Um zu tun, was Sie wollen, sollten Sie die write am Anfang der Schleife setzen, und nach der Frage nach dem Namen prüfen, ob es leer ist und, wenn es ist, break. Code ist unten:

def main(): 
    myfile = open('friends.txt','w') 
    friend = raw_input('Enter first name of friend or Enter to quit') 
    age = int(raw_input('Enter age (integer) of this friend')) 

    while friend != '': 

     while True: 
      myfile.write(friend +'\n') 
      myfile.write(str(age) +'\n') 
      friend = raw_input('Enter first name of friend or Enter to quit') 
      if not friend: 
       break 
      age = int(raw_input('Enter age (integer) of this friend')) 

     print('File was created') 
     myfile.close() 
main() 
+0

Wenn Python 3 verwendet wird, wäre die Funktion 'input' geeignet. –

+1

OP schien wie ein Anfänger und ich wollte etwas, das in beiden Versionen funktionierte, daher "könnte eine bessere Wahl gewesen sein". – Brian

+0

@Brian sicher ein Anfänger, danke für Ihre Hilfe! – CzSzPzTz

1
def main(): 
    myfile = open('friends.txt','w') 

    while True: 
     friend = input('Enter first name of friend or Enter to quit: ') 
     if not friend: 
      myfile.close() 
      break 
     else: 
      age = input('Enter age (integer) of this friend: ') 
      myfile.write(friend +'\n') 
      myfile.write(str(age) +'\n') 



main() 

Ausgang:

Enter first name of friend or Enter to quit: Mack 
Enter age (integer) of this friend: 11 
Enter first name of friend or Enter to quit: Steve 
Enter age (integer) of this friend: 11 
Enter first name of friend or Enter to quit: 

Process finished with exit code 0 
Verwandte Themen