我想输入:
1 2 3
4 5 6
7 8 9
然后转化为一个矩阵mat,但每次运行结果都少了最后一行‘7 8 9’,请问是什么原因呢?
代码如下:
import sys
mat = []
while 1:
try:
line = sys.stdin.readline().split()
row = list(map(int, line)) # [1, 2, 3]
mat.append(row) # 形成矩阵
print(mat)
except EOFError:
print('break')
break
结果如下:
最后一行读取的时候遇到eof,如果此时跳转到except,就不执行append了
import sys
mat = []
while 1:
try:
line = sys.stdin.readline().split()
row = list(map(int, line)) # [1, 2, 3]
mat.append(row) # 形成矩阵
print(mat)
except EOFError:
row = list(map(int, line)) # [1, 2, 3]
mat.append(row) # 形成矩阵
print('break')
break
因为你输入完最后一行之后没有输入回车键
也可以改成输入空行结束。
import sys
mat = []
while 1:
try:
line = sys.stdin.readline().split()
if not line:
break
row = list(map(int, line)) # [1, 2, 3]
mat.append(row) # 形成矩阵
print(mat)
except EOFError:
print('break')
break