Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.12.2023, 13:30   #1
Dizaster
Новичок
Джуниор
 
Регистрация: 22.01.2023
Сообщений: 2
По умолчанию Помогите пожалуйста решить задачу на Python

Дана квадратная матрица, необходимо проверить, является ли она единичной.

мой код, который не работает:

Код:
matrix = [[1, 0, 0, 0],
          [0, 1, 0, 0],
          [0, 0, 1, 0],
          [0, 0, 0, 1]]

for i in (matrix):
    for j in (i, matrix):
        if (i == j and matrix[i][j] != 1) or (i != j and matrix[i][j] != 0):
             print('Матрица не единичная')
        else:
             print('Матрица единичная')

Последний раз редактировалось BDA; 31.12.2023 в 16:31.
Dizaster вне форума Ответить с цитированием
Старый 31.12.2023, 13:51   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Код:
def main():
    matrix = [[1, 0, 0, 0],
    [0, 1, 0, 0],
    [0, 0, 1, 0],
    [0, 0, 0, 1]]

    for i in range(len(matrix)):
        for j in range(len(matrix[i])):
            if (i == j and matrix[i][j] != 1) or (i != j and matrix[i][j] != 0):
                print('Матрица не единичная')
                return

    print('Матрица единичная')

if __name__ == '__main__': 
    main()
p51x вне форума Ответить с цитированием
Старый 31.12.2023, 16:32   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Еще 2 способа (задействуя else ветку цикла, используя функцию all):
Код:
def main():
    matrix = [[1, 0, 0, 0],
    [0, 1, 0, 0],
    [0, 0, 1, 0],
    [0, 0, 0, 1]]

    # 1
    for i in range(len(matrix)):
        for j in range(len(matrix[i])):
            if (matrix[i][j] != int(i == j)):
                print('Матрица не единичная')
                break
        else:
            continue
        break
    else:
        print('Матрица единичная')

    # 2
    if all(matrix[i][j] == int(i == j) for i in range(len(matrix)) for j in range(len(matrix[i]))):
        print('Матрица единичная')
    else:
        print('Матрица не единичная')

if __name__ == '__main__': 
    main()
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 02.01.2024, 09:24   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

"Красота - это страшная сила!" (Фаина Раневская)
Как-то так, ...
ViktorR на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачу на python Dizaster Помощь студентам 1 22.01.2023 09:14
Помогите решить задачу,пожалуйста!!!вторую часть не могу решить. Родион Афанасьев Паскаль, Turbo Pascal, PascalABC.NET 1 03.03.2018 19:44
Python. Помогите пожалуйста решить!!! Gulnaz1 Python 0 11.05.2014 17:27