Вот что я заметил с помощью этого кода.
Прежде всего, ваша строка:
if input = no:
должна быть изменена на
if response == 'no':
Я изменилсяваше имя "input" для "response", потому что input является встроенной функцией в python, и мы не должны использовать его как имя переменной.
Оператор == проверяет эквивалентность своих операндов, в этомввод регистра и «нет». Единственное равенство = - это оператор присваивания в python, означающий, что оно сохраняет значение справа от знака = в имени, указанном слева. Например,
myPetObjects = []
назначает пустой список справа имени myPetObjects слева.
Другое изменение в коде, которое вы можете заметить в переписанной мной строке, - это цитатыдобавлено к «нет». Это позволит сравнить значение, указанное в имени «input», со строковым литералом «no». Как было написано ранее, «без» без кавычек относится к имени / переменной no, которое не было определено и может привести к путанице в Python.
Другое дело: поскольку вы используете оператор break, который однажды выйдет из циклаrun, вы можете обновить строку цикла while, просто сказав
while True:
Таким образом, цикл будет продолжаться бесконечно, пока не будет явно завершен с оператором "break" (который вы включили).
Что касается фактического тела цикла while, он нуждается в небольшом рефакторинге. Оператор
input("what type of animal")
является вызовом встроенной функции ввода python, и он будет оценивать или возвращать строку , введенную пользователем по запросу «whatТип животного ".
Итак, мы можем рассматривать его как строку. Имея это в виду, давайте создадим ваши любимые объекты. Создание объекта в Python имеет общий синтаксис
object_name = class_name(parameters)
, где параметры ссылаются на параметры, принятые __init__. Это назначит экземпляр объекта вашего класса имя_класса для имя_объекта с помощью оператора присваивания =.
Чтобы добавить новый объект в myPetObjects, нам не нужно присваивать нашему новому объекту имя. Вместо этого мы можем сделать:
myPetObjects.append(class_name(parameters))
В вашей ситуации это может быть записано:
myPetObjects.append(petClass(input("what type of animal"), input("what is its name")))
Итак, весь наш цикл:
while True:
myPetObjects.append(petClass(input("what type of animal"), input("what is its name")))
response = input("add another animal?")
if response == 'no':
break
Возможно, болеелегко читаемая версия:
while True:
new_pet = petClass(input("what type of animal"), input("what is its name"))
myPetObjects.append(new_pet)
response = input("add another animal?")
if response == 'no':
break
Я надеюсь, что это поможет, и дайте мне знать, если у вас есть еще вопросы, если что-то не понятно, или я не отвечал на вопрос так, как вы хотели,Удачи!