2016-03-14 46 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'' 现在它告诉我不能使整数列表? –

相关问题