4 回答

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊
現(xiàn)在,您的代碼分別要求每個(gè)元素。如果你輸入數(shù)字直到它像這樣結(jié)束
111
222
333
444
555
666
777
888
999
程序?qū)⒎祷?/p>
[[111, 222, 333], [444, 555, 666], [777, 888, 999]]
發(fā)生這種情況是因?yàn)閕nput()位于最內(nèi)層循環(huán)內(nèi),因此被調(diào)用了 9 次。
因此,如果您想輸入所示的由空格分隔的值,您可以使用列表理解將其轉(zhuǎn)換為數(shù)字列表:
row = int(3)
matrix_input = []
print("Enter the entries in a single line (separated by space): ")
for i in range(row): # A for loop for row entries
matrix_input.append([int(k) for k in input().split(' ')])
for out in matrix_input:
print('{0} {1} {2}'.format(*out))
這將要求三個(gè)條目,這些條目沿空格分割并轉(zhuǎn)換為整數(shù)。如果你想要浮動(dòng),你可以使用float(k)而不是int(k)。print 命令使用解包并返回行for ... in。
或者,您可以使用' '.join(),它更靈活:
for out in matrix_input:
print(' '.join([str(el) for el in out]))
這實(shí)際上是構(gòu)造矩陣的逆運(yùn)算。

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
def matrix():
row = int(3)
column = int(3)
matrix_input = []
print("Enter the entries in a single line (separated by space): ")
for i in range(row): # A for loop for row entries
ints =input()
entries = []
for a in ints:
entries.append(int(a))
matrix_input.append(entries)
for ele in matrix_input:
for d in ele:
print(d,end='')
print('')
matrix()
輸入:
Enter the entries in a single line (separated by space):
130
304
603
輸出:
130
304
603

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
問題是您試圖將整個(gè)字符串(每個(gè) int 之間有空格的輸入)轉(zhuǎn)換為整數(shù)。
相反,您需要拆分輸入。見下文:
def matrix():
row = int(3)
column = int(3)
matrix_input = []
print("Enter the entries in a single line (separated by space): ")
input_str = input()
entries = []
entries.extend([int(x) for x in input_str.split(' ')])
for item in entries:
print(item)

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
這可以解決問題。
def matrix():
row = int(3)
column = int(3)
matrix_input = []
print("Enter the entries in a single line (separated by space): ")
for i in range(row): # A for loop for row entries
# ints = input().split()
while True:
ints = input().split()
if len(ints) == 3:
break
print("Invalid Input Received")
print("Enter the entries in a single line (separated by space): ")
entries = []
for a in ints:
entries.append(int(a))
matrix_input.append(entries)
print("Output")
for ele in matrix_input:
for d in ele:
print(d, end=' ')
print('')
添加回答
舉報(bào)