#python
Вопрос:
Я запускаю этот код, чтобы попытаться создать блок чисел
grid = [[5, 3, 0, 0, 7, 0, 0, 0, 0], [6, 0, 0, 1, 9, 5, 0, 0, 0], [0, 9, 8, 0, 0, 0, 0, 6, 0], [8, 0, 0, 0, 6, 0, 0, 0, 3], [4, 0, 0, 8, 0, 3, 0, 0, 1], [7, 0, 0, 0, 2, 0, 0, 0, 6], [0, 6, 0, 0, 0, 0, 2, 8, 0], [0, 0, 0, 4, 1, 9, 0, 0, 5], [0, 0, 0, 0, 8, 0, 0, 7, 9]] def print_grid(): for line in grid: for square in line: if square == 0: print(".", end=" ") else: print(square, end=" ") print() print_grid()
тем не менее, вывод представляет собой один длинный список чисел, идущих вниз виртуально, как это:
5 3 . . 7 . . . . 6 . . 1
и т. д. и т. д. Кто-нибудь знает, что я могу делать не так?
Заранее большое спасибо 🙂
Комментарии:
1. выньте
print()
заднюю часть из внутренней петли2.
print()
слишком глубокий отступ на один уровень. Просто снимите его один раз, чтобы он был внутри .for line in grid
3. Кстати, вы можете переместить это
if
встроенное:print("." if square == 0 else square, end=' ')
Ответ №1:
Ваше окончательное утверждение печати (пустое) выполняется после каждого квадрата, а не после каждой строки. Попробуйте откорректировать его на один уровень.