2014-10-23 1 views
1

iv'e работал над этим вопросом, и я думаю, что я почти там.Noughts and Crosses Loops

Вопрос:

Написать функцию get_column (игры, col_num), которая принимает правовую игру 3 х 3 из крестики и нолики и возвращает список 3-элемент, содержащий значения из числа столбца col_num, сверху вниз. Вы можете предположить, что col_num находится в диапазоне от 0 до 2 включительно. [Подсказка:. Вы должны построить возвращаемое значение с помощью цикла по рядам, выбирая необходимый элемент каждой строки]

Мой рабочий:

def get_column(game, col_num): 
    x = [] 
    for i in game: 
     for j in i: 
      x.append(i[col_num]) 
    return x 

Тестирование:

column1 = get_column ([[O ',' X ',' O '], [' X ',' ',' '], [' ',' ',' ']], 0)

print (column1)

Результаты:

[ 'O', 'O', 'O', 'X', 'X', 'X', '', '', ' ']

Требуются Формат:

[' O ',' X ',' '].

Я уверен, что получаю правильный ответ, однако, не в правильном формате. результаты показывают, что im увеличивая 'O'/'X' еще два раза. я думаю, что это имеет какое-то отношение к петлям, но я могу точно определить, что именно.

любая помощь будет оценена! Ура!

+0

Каков ваш фактический вопрос. Вам нужно более подробно рассказать, с чем вам нужна помощь. Просто «Любая помощь будет оценена по достоинству» не является большой проблемой, поэтому я не знаю, что сказать, чтобы помочь вам. –

+0

Я сравнил «результаты» запуска кода с «желаемым форматом» в конце. Я нахожусь на ранних этапах программирования, поэтому я все еще изучаю, как выражать проблемы с кодом, особенно здесь. так извините за это. тем не менее, другие указали на ошибку, и все ее отсортировано. но спасибо за то, что ушел Алекс :) ​​ –

ответ

1
def get_column(game, col_num): 
    x = [] 
    for i in range(3): 
     x.append(game[i][col_num]) 
    return x 
+0

Код возвращается мне: TypeError: индексы списка должны быть целыми числами, а не списком. Ошибка в строке 4. Однако Джон Кипарски помог мне и побежал. Но спасибо спасибо! :) –

+0

мое плохое, изменение в игре на дальность (3) –

1
for i in game: 
     for j in i: 
      x.append(i[col_num]) 

Я предполагаю, что игра представляет собой список из трех. В этом случае ваш внутренний цикл выполняет итерацию по каждому из трех элементов в i и добавляет i [col_num] один раз для каждого из них. Опустите внутренний контур (для j в i), и он должен работать правильно.

+0

Работал просто отлично! Благодаря! –