Как убрать каретку строки при выводе матрицы? В качестве альтернативы, как отобразить матрицу с помощью sys.stdout.write? - PullRequest
0 голосов
/ 04 августа 2020

Моя попытка:

import sys
import numpy as np 

try:
        n1, m1 = map(int, input().split()) # rows, columns
        matrix_1 = [input( ).split() for i in range(n1)] #elements
    
        n2, m2 = map(int, input().split())
        matrix_2 = [input().split() for j in range(n2)]
    
        if n1 != n2 or m1 != m2:
             print("ERROR")
        else:
            matrix_sum = [[int(matrix_1[i][j]) + int(matrix_2[i][j]) for j in range(m1)] for i in range(n1)]
   
        a = np.array(matrix_sum)
        sys.stdout.write(str(a))
    
        for i in matrix_sum:
            print(*i, end='\r')
    
        for i in matrix_sum:
           print(*i)
    
    
      
      

            
except IndexError:
        print("The operation cannot be performed.")
    
except ValueError:
        print("Invalid Values")

Искали на веб-сайте, но ничего не соответствовало матрице. Если вы видите решение, опубликуйте ссылку для справки. Попытка решить проблемы на Techgig.

Ожидаемый результат:

3 5 7
9 11 13
14 16 18
[Program finished] 

Получение результата:

3 5 7
9 11 13
14 16 18

[Program finished] 

Изменить:

for i in range(n1):
    for j in range(m1):         
        sys.stdout.write(str(matrix_sum[i][j])+" ")        
    sys.stdout.write("\n\r").

не t тоже работает.

Изменить:

 for i in range(n1):
          for j in range(m1):
              sys.stdout.write(str(matrix_sum[i][j]))
              if not (j == m1-1):
                   sys.stdout.write(str(" "))
           if not(i == n1-1):
                sys.stdout.write("\n\r")

ошибка на Techgig

1 Ответ

0 голосов
/ 04 августа 2020
import sys
import numpy as np 

try:
        n1, m1 = map(int, input().split()) # rows, columns
        mat1 = [input( ).split() for i in range(n1)] #elements
        
        n2, m2 = map(int, input().split())
        mat2 = [input().split() for j in range(n2)]
        
        if n1 != n2 or m1 != m2:
            print("ERROR")
        else:
            for i in range(0,n1):
                for j in range(0,m1):
                    k=(int(mat1[i][j])+int(mat2[i][j])) 
                    if i==(n1-1) and j==(m1-1):
                        print(k,end="") 
                    elif j == (m1-1):
                        print(k) 
                    else:
                        print(k,end=' ') 
        
          

    
                                                                          
except IndexError:
        print("The operation cannot be performed.")
        
except ValueError:
        print("Invalid Values")

Решена проблема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...