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