我在python中编写了这段代码,用于输入矩阵:
def gestionmatrice():
print("Entrez la matrice,séparé par des espaces pour chaques colonnes")
print("une rangée par ligne,et faites un ligne vide pour terminer")
matrix = []
while True:
line = input()
if not line: break
values = line.split()
row = [int(value) for value in values]
matrix.append(row)
print(matrix)
用户通过输入以空格分隔的每行所需的int
值来输入矩阵,然后按Enter确认行,input
确认行。input
。要完成,用户必须1 2 3
一个空行,然后按输入。最后,我希望通过打印来查看矩阵;问题是它没有正常工作;例如,如果用户在下一行输入4 5 6
然后print(matrix)
,则[[1, 2, 3], [4, 5, 6]]
将结果为:print
。它应该是1 2 3
4 5 6
{ {1}}所以有些东西不起作用。需要修改什么?提前谢谢。
答案 0 :(得分:1)
您可以在Python中打印矩阵,如下所示:
def print_matrix(matrix):
print('\n'.join([' '.join(map(str, row)) for row in matrix]))
这是一个获取矩阵函数:
def get_matrix():
matrix = []
line = input()
while line:
matrix.append(map(int, line.split()))
line = input()
return matrix
演示:
>>> matrix = get_matrix()
1 2 3
4 5 6
7 8 9
>>> print_matrix(matrix)
1 2 3
4 5 6
7 8 9
答案 1 :(得分:0)
[[1, 2, 3], [4, 5, 6]]
是矩阵的默认打印(在许多语言中,不仅仅是python)。
要达到你想要的效果,你必须做一些像
这样的事情import sys
for i in xrange(2):
for j in xrange(3):
sys.stdout.write(str(matrix[i,j] + " "))
sys.stdout.write("\n")
答案 2 :(得分:0)
我不确定你为什么要这样,但你可以这样做:
而不是print(matrix)
,请执行:
>>> print(*(' '.join(map(str, sub)) for sub in matrix), sep='\n')
1 2 3
4 5 6
这是快速修复。