Не могу написать необходимый вывод
Всем добрый день! У меня есть следующая функция:
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 шт):
Если нужно делать проверку до цикла и не идти в него при 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)
Вообще для такого специально в питоне есть инструкция 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!
Очень полезная штука, хотя вывода получается многовато, но он информативный - показывает и ваше сообщение и где именно проверка не прошла и какая именно.