fork download
  1. # Python3 — шахівниця через матрицю, використовує слайси
  2. # Працює без зовнішніх бібліотек (тільки стандартна бібліотека)
  3. import sys
  4.  
  5. def make_chessboard(n=8, dark='■', light='□'):
  6. """
  7. Повертає матрицю n x n з символами шахівниці.
  8. Використано слайси: first_row[:] щоб копіювати, second_row = first_row[::-1] щоб отримати інверсію.
  9. """
  10. # створимо перший рядок (сітка починається світлим на (0,0))
  11. first_row = [light if j % 2 == 0 else dark for j in range(n)]
  12. # інвертований рядок — просто реверс першого (це демонстрація слайсу[::-1])
  13. second_row = first_row[::-1]
  14.  
  15. # важливо копіювати списки (через slice [:]) щоб кожен рядок був окремим об'єктом
  16. board = []
  17. for i in range(n):
  18. if i % 2 == 0:
  19. board.append(first_row[:]) # копія першого рядка
  20. else:
  21. board.append(second_row[:]) # копія інвертованого
  22.  
  23. return board
  24.  
  25. def print_board(board):
  26. for row in board:
  27. # друкуємо з пробілами; можна змінити формат
  28. print(' '.join(row))
  29.  
  30. def main():
  31. # читаємо необов'язковий розмір n з stdin (наприклад: в Ideone можна ввести 8)
  32. data = sys.stdin.read().strip().split()
  33. if data:
  34. try:
  35. n = int(data[0])
  36. if n <= 0:
  37. raise ValueError
  38. except ValueError:
  39. print("Перший аргумент має бути додатнім цілим числом, використовується 8.")
  40. n = 8
  41. else:
  42. n = 8
  43.  
  44. board = make_chessboard(n)
  45. print_board(board)
  46.  
  47. if __name__ == "__main__":
  48. main()
  49.  
Success #stdin #stdout 0.11s 14100KB
stdin
Standard input is empty
stdout
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □