Попытка создать сетку чисел в Python, однако вывод представляет собой одну вертикальную линию

#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:

Ваше окончательное утверждение печати (пустое) выполняется после каждого квадрата, а не после каждой строки. Попробуйте откорректировать его на один уровень.