2

我是 Python 新手,我正在尝试学习如何将列表与 for 和 while 循环结合起来,为即将在 Uni 举办的研讨会。不过,我绊倒了一件事:

基本上,我将数值存储在一个列表中,我想像这样显示它:

1  IIIII
2  II
3
4  III 
5  II

所以我代表数字,即 3 = III

我尝试了这段代码(我已经在我的代码前面建立了计数作为列表):

listIndex = 1
while listIndex < len(count):
    print(listIndex, " ", end='')
    for number in count[listIndex]:
        print("I", end='')
    print()
    listIndex += 1

但我收到以下错误:

1   Traceback (most recent call last):
File "/Volumes/USB/workshop7.py", line 145, in <module>
for number in count[index]:
TypeError: 'int' object is not iterable.

我没有看到我做错了什么,我查看了错误,但我不明白为什么我不能遍历那个 for 循环?

for 循环应该使用 listIndex 变量去到列表中的相应索引并检索值,将其显示为一系列是否与存储在那里的数字相对应?任何有助于理解我哪里出错的帮助将不胜感激。这是为了评估(5%),所以如果你能帮助我思考而不是给我答案,那将不胜感激。

4

3 回答 3

2

count[listIndex]是一个 int 值,而不是列表。您可以使用range()来制作列表,或者更好的是您可以使用“字符串乘法”,即print('I' * count[listIndex])省略for循环。

于 2013-04-25T07:24:59.543 回答
1

因此,您有一个名为“count”的列表,其中包含计数,并且您正在使用 count[listIndex] 获取其中一个。结果是什么?一个int,对吧?

这意味着您的 for 循环正在尝试执行以下操作:

for number in 3:
    print("I", end='')

“for number in 3”是在 Python 中进行循环的有效方法吗?编写 for 循环的更好方法是什么?

于 2013-04-25T07:24:25.420 回答
0
  1. 在 Python 中,列表是 0 索引的,所以你应该从 0 开始 list_index
  2. 知道计数后,您无需循环打印“I”。在 Python 中,您可以简单地执行以下操作:

    print 'I'*count[list_index]

于 2013-04-25T08:06:02.470 回答