我是Python的新手,我正在努力学习如何将列表与for循环和for循环结合起来,以便即将在Uni举办的研讨会。我在一件事上磕磕绊绊:
基本上,我有一个存储在列表中的数值,我想像这样显示:
1 IIIII
2 II
3
4 III
5 II
所以我代表数字,即3 = III
我尝试了这段代码(我之前在代码中已将count设置为列表):
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变量转到列表中的相应索引并检索该值,将其显示为一系列Is以与存储在那里的数字相对应?任何有助于理解我出错的地方都会非常感激。 这是评估(5%),所以如果你能帮助我思考而不是给我答案,那将非常感激。
答案 0 :(得分:2)
count[listIndex]
是一个int值,而不是列表。您可以使用range()
制作列表,甚至可以使用“字符串乘法”,即print('I' * count[listIndex])
并省略for
循环。
答案 1 :(得分:1)
因此,您有一个名为“count”的列表,其中包含计数,并且您使用count [listIndex]获取其中一个列表。结果是什么?一个int,对吧?
这意味着您的for循环正在尝试执行以下操作:
for number in 3:
print("I", end='')
“3中的数字”是否是在Python中进行循环的有效方法?什么是更好的方法来编写循环?
答案 2 :(得分:0)
知道计数,你不需要循环打印'我'。在Python中你可以做到:
print 'I'*count[list_index]