2016-09-05 14 views
0

所以我們允許用戶輸入他們想要輸入的數字集。每組輸入將包含兩個由空格分隔的整數。然後,回車表示下一組輸入。例如,如何在Python 3中獲取由空格和回車分隔的多組輸入?

Enter number of sets: 3 
1 3 
2 4 
5 6 

接下來,我們在變量a,b輸入這些中,執行相同的操作,顯示器3分的結果:

4 
3 
1 

應該先取所有輸入然後顯示所有相應的輸出端。 我們有處理1組輸入的邏輯,但我們如何循環它以便我們可以接受這種格式的輸入?

sets = int(input("Enter number of sets: ")) 
inputs = [] 
for n in range(sets): 
    inputs[n] = int(input().strip()) 

此錯誤與列表超出範圍錯誤。我們正在考慮創建一個列表來保存這對值。更簡單的解決方案

編輯:我在找什麼是解決這個問題的方法。它不必通過專門的清單來完成。這不是一個超出範圍問題的通用列表。我明白髮生了什麼問題,我只需要另一種方式來做到這一點。

+0

Python將不會讓你分配到一個以前未指派的指數 - 使用'append' –

+2

可能的重複[IndexError:列表分配索引超出範圍](http://stackoverflow.com/questions/5653533/indexerror-list-assignment-index-out-of-range) –

回答

4

input()返回一個字符串,如"1 3"。用類似a, b = map(int, input().split())的字符串解析該字符串。使用list.append()保存輸出。

from pprint import pprint 

inputs = [] 
results = [] 
sets = int(input("Enter number of sets: ")) 
for n in range(sets): 
    s = input() 
    a, b = map(int, s.split()) 
    result = a + b 
    inputs.append([a, b]) 
    results.append(result) 
pprint(inputs) 
pprint(results) 

一個簡單的會話是這樣的:

Enter number of sets: 3 
1 3 
2 4 
5 6 
[[1, 3], [2, 4], [5, 6]] 
[4, 6, 11] 

學習要點是:

相關問題