Неправильное размещение оператора возврата в циклах For
В вашем задании вы столкнулись с проблемой, когда программа допускала ввод только одного питомца, несмотря на прицеливание на троих. Эта проблема возникает из-за позиционирования оператора return внутри функции make_list.
В цикле for оператор return прекращает выполнение функции сразу после его достижения. В предоставленном коде оператор return помещается внутри цикла, что приводит к завершению функции после первой итерации независимо от желаемого количества входных данных (в данном случае — трех).
Чтобы устранить эту проблему, оператор return должен быть помещен вне цикла for. Это гарантирует, что цикл выполнит заданное количество итераций до завершения функции.
Вот исправленная функция make_list:
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 the list
return pet_list
Поместив оператор return вне цикла, функция теперь выполняется полностью перед возвратом списка объектов домашних животных.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3