Предмет: Информатика, автор: Pablousr

Python, дана матрица 3 на 3 изначально заполненная нулями, надо заполнить матрицу двойками, кроме числа по середине

Ответы

Автор ответа: gamatacy
1

Ответ:

Код работает для любых матриц N x N, если N нечетно. ʕ•́ᴥ•̀ʔっ♡

matrix = [[0,0,0],

         [0,0,0],

         [0,0,0]]

#вывод начальной матрицы

for i in range(len(matrix)):

   print(matrix[i])

for i in range(len(matrix)):

   for j in range(len(matrix[i])):

        if len(matrix)//2 == i and len(matrix[i])//2 == j:

            matrix[i][j] = 0

        else:

            matrix[i][j] = 2

   print(matrix[i])


Pablousr: пожалуйста
gamatacy: Код не очень хороший, ну да ладно. Матрица в питоне по простому, это двумерный массив, в котором 5 массивов по 5 элементов. Получается матрица 5 на 5. Я прохожусь циклом по элементам и проверяю индексы в массиве, если это [1][1], то это центральный элемент, т.к. массивы нумеруются с нуля.
gamatacy: В условии я делю длину массива на 2, это целочисленное деление, которое округляется вниз, получается 3//2 == 1, а при нумерации массива с 0, индекс 1 соответствует середине каждого массива. Сразу извиняюсь за тяжкое объяснение :)
gamatacy: И да, немного неправильно условие прочитал, уже поправил программу.
Pablousr: а что такое 3//2 == 1 ? число 3 откуда берётся
gamatacy: ну 3
gamatacy: это размер матрицы, я условно написал
Pablousr: можешь пожалуйста добавить вывод изначальной матрицы где все 0 в виде матрицы а не строчки
Pablousr: пожалуйста
gamatacy: добавил
Похожие вопросы
Предмет: Английский язык, автор: муслим30
Предмет: Қазақ тiлi, автор: АБВГДЖЗИЙКЛМН