Проверка вводимых данных в коде

Сделал код, который генерирует случайным образом матрицу и складывает ее построчно. Еще хотел сделать проверку чтобы в размер матрицы можно было вводить только числа и при вводе других символов выдавало сообщение о неверно вводимых данных. В итоге перепробовал все и гуглить пытался, так ничего и не получатся.

import random

n = int(input("Введите размер матрицы: "))
m = int(input("Введите размер матрицы: "))  
matrix = [[random.randint(1, 10) for _ in range(m)] for _ in range(n)]

print("Матрица:")
for row in matrix:
    print(row)

sums = [sum(row) for row in matrix]

print("Суммы по строкам:")
for row_sum in sums:
    print(row_sum)

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

Автор решения: S. Nick

Как вариант.

Блок try позволяет проверить блок кода на наличие ошибок.
Блок except позволяет обработать ошибку.

import random

flag = True
while flag:
    try:
        n = int(input("Введите количкство строк матрицы   : "))
        m = int(input("Введите количкство столбцов матрицы: ")) 
        flag = False
    except:
        print('\nНеверно задан размкр матрицы. Попробуйте еще раз.\n')
 
matrix = [[random.randint(1, 10) for _ in range(m)] for _ in range(n)]

print(f"\nМатрица: {n}х{m}")
#for row in matrix:
#    print(row)
print(*matrix, sep='\n')

sums = [sum(row) for row in matrix]

print("\nСуммы по строкам:")
for i, row_sum in enumerate(sums):
    print(f'Суммы по строке {i+1}: {row_sum}')

введите сюда описание изображения

→ Ссылка
Автор решения: vadim vaduxa
def get_i(msg, s=''):
    i = input(f'{s}\n{msg}')
    return int(i) if i.isdigit() else get_i(msg, s='Неверно задан размер матрицы. Попробуйте еще раз.')

n, m = map(get_i, ["Введите количество строк матрицы: ", "Введите количество столбцов матрицы: "])
print(n, m)
→ Ссылка