2016-03-14 80 views
-3
dataList = list(input('Enter a data value')) 
for x in range(0, 11): 
    dataList.append(list(input("Enter a data value"))) 
    rect(210, 499, 50, (dataList[1])) 

基本上,我想從用戶那裏接受輸入,他們會輸入一些整數。這些整數將用作矩形的高度值。目前,python返回類型str不能用作高度值的錯誤。說得通。當我嘗試map或列表轉換時,出現錯誤,表示類型轉換爲str必須在對象上操作,而不是在列表上操作。如何在Python中使用用戶輸入的整數作爲整數3

我該如何使用Python作爲整數來評估列表值,以便通過調用它們的位置將它們放置到rect函數中?

+0

你使用的是什麼Python版本? –

+0

Python 2或Python 3? – Will

+0

您是否嘗試過打印並查看'dataList'包含的內容?這在這種情況下會告訴你很多。 _Spoiler警報:它是一個列表以及一個字符串列表._ – Lafexlos

回答

1

只需在用戶輸入時將每個輸入作爲int進行投射。在附加到列表時,您不必將每個輸入轉換爲列表。只需附加數據即可滿足您的需求。你試圖創建自己的數據結構的方式,你最終這樣做:

[['1'], ['2'], ['3']] 

你不想要的東西,這肯定是。你想要的是:

[1, 2, 3] 

這簡直就是爲dataList.append(1)

而且做的,我不知道爲什麼你到一個列表,然後通過該列表的方法在每次迭代中收集的數據,但對於無論什麼原因,如果這就是你正在做的,第一次迭代將失敗,因爲不會有dataList[1]。如果您正在尋找將所有數據傳遞給方法,那麼您應該超出rect方法,因此它不在您的循環中

如果您使用Python 2,請使用raw_input而不是input。下面是一個Python 3友好的例子:

for x in range(0, 11): 
    dataList.append(int(input("Enter a data value"))) 
rect(210, 499, 50, (dataList)) 
+0

'line 28,in DataList = list(int(input('輸入數據值'))) TypeError:'int'對象不可迭代' 是使用此代碼的錯誤 –

+0

@ZackShapiro您甚至沒有使用代碼答案I提供。你只是粘貼這個代碼:'dataList = list(int(input('輸入數據值')))'。停止將其轉換爲列表。仔細看我的答案。另外,請注意我寫的有關'rect'方法的內容。 – idjaw

+0

'線31,在 dataList.append(INT(輸入(「輸入數據值」))) 類型錯誤:描述符「追加」需要「名單」的對象,但獲得了「int'' 現在它告訴我不能使整數列表? –

相關問題