Прежде чем я попытаюсь объяснить это, вот код, с которым я сейчас работаю:
currentLine = 1
try:
with open(filename, 'r') as f:
for line in f:
if currentLine == 1:
tempName = line
if currentLine == 2:
tempColour = line
if currentLine == 3:
tempAge = line
if currentLine == 4:
tempWeight = line
currentLine = 1
tempSheep = Sheep(tempName, tempColour, tempAge, tempWeight)
sheepList.append(tempSheep)
currentLine = currentLine + 1
except:
print("file is in an invalid format")
continue
else:
break
Цель кода - прочитать 4 строки из файла (имя, цвет, возраст и вес) и поместить их в объект Sheep. Это должно быть сделано в цикле, поскольку в каждом файле может быть от 2 до 10 овец. Код в основном работает, так как он читает строки и помещает их в класс, но не читает правильные строки. Когда я распечатываю всех овец, каждую овцу с тем же именем, «боб», это имя первой овцы в файле и первая строка. Кроме того, он на самом деле работает, но он полностью игнорирует переменную name, просто помещая в нее bob. Я заканчиваю с этим беспорядком овец по имени Боб.
например, пример вывода выглядит так:
Name: bob
Colour: blue
age: 5
weight: 50
name: bob
Colour: tina
age: red
Weight: 7
name: bob
colour: 75
age: shirley
Weight: green
в случае, если это не очевидно, все компенсируется игнорированием имени. Я надеюсь, что это было объяснено достаточно хорошо, если вам понадобится дополнительное объяснение, я могу попытаться добавить еще несколько примеров.
почему моя программа плохая?