Не могу написать необходимый вывод

Всем добрый день! У меня есть следующая функция:

def print_operation_table(operation, num_rows=9, num_columns=9):
    for i in range(1, num_rows + 1):
        for j in range(1, num_columns + 1):
            print(operation(i, j), end=" ")
        print()

Подскажите, пожалуйста, к этому же коду как добавить к функции чтоб она выводила: ОШИБКА! Размерности таблицы должны быть больше 2!., если строк меньше двух.

Я добавляю:

if num_rows < 2 : 
    print('ОШИБКА! Размерности таблицы должны быть больше 2!.')

Выдает такой ответ :

1 1 2 ОШИБКА! Размерности таблицы должны быть больше 2!.

А нужно чтобы только текст выводил!

P.S. "Совсем новенький в программировании!"


Ответы (2 шт):

Автор решения: mrgervant

Если нужно делать проверку до цикла и не идти в него при num_rows < 2, то можно выйти из функции с помощью return:

def print_operation_table(operation, num_rows=9, num_columns=9):
    if num_rows < 2:
        return print('ОШИБКА! Размерности таблицы должны быть больше 2!')
    for i in range(1, num_rows + 1):
        cur_row = []
        for j in range(1, num_columns + 1):
            cur_row.append(operation(i, j))
        print(*cur_row)
→ Ссылка
Автор решения: CrazyElf

Вообще для такого специально в питоне есть инструкция assert, которая выкидывает исключение AssertionError, если проверяемое условие не выполняется:

def print_operation_table(operation, num_rows=9, num_columns=9):
    assert num_rows >= 2, 'ОШИБКА! Размерности таблицы должны быть больше 2!'
    for i in range(1, num_rows + 1):
        for j in range(1, num_columns + 1):
            print(operation(i, j), end=" ")
        print()

print_operation_table(None, 1, 1)

Вывод:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
Cell In[4], line 8
      5             print(operation(i, j), end=" ")
      6         print()
----> 8 print_operation_table(None, 1, 1)

Cell In[4], line 2, in print_operation_table(operation, num_rows, num_columns)
      1 def print_operation_table(operation, num_rows=9, num_columns=9):
----> 2     assert num_rows >= 2, 'ОШИБКА! Размерности таблицы должны быть больше 2!'
      3     for i in range(1, num_rows + 1):
      4         for j in range(1, num_columns + 1):

AssertionError: ОШИБКА! Размерности таблицы должны быть больше 2!

Очень полезная штука, хотя вывода получается многовато, но он информативный - показывает и ваше сообщение и где именно проверка не прошла и какая именно.

→ Ссылка