我有一个Python程序,它从一个名为“UserColorIndex”的预定义列表中打印颜色-我希望程序根据名为“NumberOfCircles”的变量的数值打印这些颜色。因此,如果NumberOfCircles的值中有100,那么程序应该从列表中打印这些颜色100次,如果索引只有9种颜色,那么程序应该循环使用这些颜色并重复使用这些颜色来打印它们。我尝试使用enumerate方法,但这只是创建了一种不同的数据类型。我将如何修复/执行此操作
这是我的密码:
NumberOfCircles = 18 # I don't know, just some random number, the program should work regardless of which number is placed
def GenerateRosette():
for i in range(NumberOfCircles):
print(UserColorIndex[i])
UserColorIndex = ["Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet", "Black", "Grey"]
GenerateRosette()
Output:
________________
Red
Orange
Yellow
Green
Blue
Indigo
Violet
Black
Grey
Traceback (most recent call last):
File "file.py", line 9, in <module>
GenerateRosette()
File "file.py", line 5, in GenerateRosette
print(UserColorIndex[i])
IndexError: list index out of range
EXPECTED Output (What I want):
________________
Red
Orange
Yellow
Green
Blue
Indigo
Violet
Black
Grey
Red
Orange
Yellow
Green
Blue
Indigo
Violet
Black
Grey
在预期输出中,我希望根据for循环的运行次数(NumberOfCircles)打印列表。我想让它在列表中循环。我该怎么做?
我发现@Tim最初的解决方案很优雅,@Juanpa建议的改进很有洞察力。将这两者结合起来会产生以下代码片段,在我看来,它非常“python”:
简单的方法是使用itertools.cycle:
相关问题 更多 >
编程相关推荐