Ошибка индекса списка - PullRequest
0 голосов
/ 28 октября 2018

Я создал программу, которая читает строку файла в список.Когда я запускаю код ниже, я вижу, что есть список с элементами внутри него.

dogs_list_player = []
dogs_list_computer = []

with open("dogs.txt") as f:
    for i in range(Y):
        dogs_list_player.append(f.readline().splitlines())
        print(dogs_list_player)
    for i in range(Z):
        dogs_list_computer.append(f.readline().splitlines())
        print(dogs_list_computer)

В результате:

[['Tim']]
[['Tim'], ['Bob']]
[['Tim'], ['Bob'], ['Jess']]
[['Tim'], ['Bob'], ['Jess'], ['Bess']]
[['Tim'], ['Bob'], ['Jess'], ['Bess'], ['Tess']]
[['Dom']]
[['Dom'], ['Tom']]
[['Dom'], ['Tom'], ['Will']]
[['Dom'], ['Tom'], ['Will'], ['Ben']]
[['Dom'], ['Tom'], ['Will'], ['Ben'], ['Joe']]

Но проблема возникает, когда я добавляю эту частькода:

dogs_list_player = []
dogs_list_computer = []

with open("dogs.txt") as f:
    for i in range(Y):
        dogs_list_player.append(f.readline().splitlines())
        print(dogs_list_player)
    for i in range(Z):
        dogs_list_computer.append(f.readline().splitlines())
        print(dogs_list_computer)

class Dog_card: 
    name  = ""
    friendliness = ""
    intelligence = ""
    exercise = ""
    drool = ""

    def printing_card(self):
        prnt_str = "Name:%s \nIntelligence:%s \nExercise:%s \nDrool:%s" %(self.name, self.friendliness, self.intelligence, self.exercise, self.drool)
        return prnt_str

player_card = Dog_card()
card_count = 0
player.name = dogs_list_player[0]#i think this is where the issue is happening

результат этого кода:

IndexError: list index out of range

Любая помощь будет оценена

1 Ответ

0 голосов
/ 28 октября 2018

в вашем классе Dog_card есть некоторые ошибки: вы забыли параметр "содружественность" в строке, которая находится в методе printing_card, а также у вас нет конструктора в вашем классе.

class Dog_card:

def __init__(self):
    self.name = ""
    self.friendliness = ""
    self.intelligence = ""
    self.exercise = ""
    self.drool = ""

def printing_card(self):
    prnt_str = "Name:%s \nIntelligence:%s friendliness:%s \nExercise:%s \nDrool:%s" %(self.name, self.friendliness, self.intelligence, self.exercise, self.drool)
    return prnt_str

это должно сработать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...