ferma.append(i)
Дословно: в конец списка ferma добавить элемент i
то есть, если у тебя был список
["d", 1, "8888"]
i = "ssss" ferma.append(i)
["d", 1, "8888", "ssss"]
а вот тут ты пытаешься обратиться к элементу по индексу i
ferma[i] = ....
Бред.
ferma.append(i)
["d", 1, "8888"]
i = "ssss" ferma.append(i)
["d", 1, "8888", "ssss"]
ferma[i] = ....
[0,1,2,3,...]
ferma.append(i) ferma[i] = Critter(crit_name)
ferma.append(Critter(crit_name))
for i in range(quantity): crit_name = input("Как вы назовете свою зверюшку?\t") ferma.append(Critter(crit_name)) return quantity, ferma