Rückgabeanweisungen in For-Schleifen
In Python kann eine Rückgabeanweisung innerhalb einer Schleife die Schleife vorzeitig beenden. Dies kann zu unerwartetem Verhalten führen, wie im bereitgestellten Beispiel zu sehen ist.
Im angegebenen Code zielt die Funktion make_list() darauf ab, Daten für drei Haustiere zu sammeln. Aufgrund der Platzierung der return-Anweisung innerhalb der Schleife werden jedoch nur Daten für das erste Haustier aufgezeichnet. Dies liegt daran, dass die Return-Anweisung die Funktion sofort nach der ersten Iteration der Schleife verlässt.
Um dieses Problem zu beheben, sollte die Return-Anweisung aus der Schleife verschoben werden, damit die Schleife alle drei Iterationen vor der Funktion abschließen kann kehrt zurück. Hier ist der korrigierte Code:
<code class="python">import pet_class #The make_list function gets data from the user for three pets. The function # returns a list of pet objects containing the data. def make_list(): #create empty list. pet_list = [] #Add three pet objects to the list. print 'Enter data for three pets.' for count in range (1, 4): #get the pet data. print 'Pet number ' + str(count) + ':' name = raw_input('Enter the pet name:') animal = raw_input('Enter the pet animal type:') age = raw_input('Enter the pet age:') #create a new pet object in memory and assign it #to the pet variable pet = pet_class.PetName(name,animal,age) #Add the object to the list. pet_list.append(pet) return pet_list pets = make_list()</code>
Mit dieser Änderung erfasst die Funktion ordnungsgemäß Daten für alle drei Haustiere, wie beabsichtigt.
Das obige ist der detaillierte Inhalt vonWann kann eine Return-Anweisung eine Schleife in Python beenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!