Advertisement
Guest User

Untitled

a guest
Dec 18th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.14 KB | None | 0 0
  1. from random import randint
  2. from pprint import pprint
  3.  
  4. matrix_size = None
  5.  
  6. while matrix_size not in (2, 3, 4, 5):
  7.     try:
  8.         matrix_size = int(input('Input size of matrix: '))
  9.         if matrix_size not in (2, 3, 4, 5):
  10.             raise ValueError
  11.     except ValueError:
  12.         print('Give correct data for size of matrix (integer number from 2 to 5')
  13.  
  14. matrix = [[0 for i in range(matrix_size)] for j in range(matrix_size)]
  15.  
  16. command_chose = None
  17.  
  18. while command_chose not in (1, 2):
  19.     try:
  20.         command_chose = int(input('1.Ввести числа самостоятельно\n2.Заполнить автоматически\nYou answer: '))
  21.     except ValueError:
  22.         print('Give correct data for choose the command')
  23.  
  24. if command_chose == 1:
  25.     for i in range(matrix_size):
  26.         for j in range(matrix_size):
  27.             number = None
  28.             while not isinstance(number, int) or number > 100 or number < 0:
  29.                 try:
  30.                     number = int(input(f'Введите число от 0 до 100 для {i} строки и {j} колонки матрицы: '))
  31.                 except ValueError:
  32.                     print('Неверные данные (type of integer and range from 1 to 100')
  33.  
  34.             matrix[i][j] = int(number)
  35.  
  36. elif command_chose == 2:
  37.     for i in range(matrix_size):
  38.         for j in range(matrix_size):
  39.             matrix[i][j] = randint(1, 100)
  40.  
  41. diagonal_elements = [matrix[i][i] for i in range(matrix_size) for j in range(matrix_size) if i == j]
  42. diagonal_elements.sort()
  43.  
  44. pprint(matrix)
  45. print(diagonal_elements)
  46.  
  47. for i in range(matrix_size):
  48.     for j in range(matrix_size):
  49.         if i == j:
  50.             matrix[i][j] = diagonal_elements[i]
  51.         else:
  52.             matrix[i][j] *= -1
  53.  
  54. pprint(matrix)
  55.  
  56. n_diag_max = None
  57.  
  58. available_max = [i for i in range(matrix_size)]
  59.  
  60. while n_diag_max not in available_max:
  61.     try:
  62.         n_diag_max = int(input('Get number n-maximum on main diag of matrix: '))
  63.         n_diag_max -= 1
  64.     except ValueError:
  65.         print('Invalid data, please try again')
  66.  
  67. print(f'N maximum is {diagonal_elements[n_diag_max]}')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement