"NameError: name 'number' is not defined" - 使用列表



我用Python写了一段for循环的代码,但是我写错了。所以,Python从我这里接收到两个列表。一个名为colors,包含彩虹的七种颜色,而另一个名为crayons_count,包含七个数字,表示每种颜色有多少支蜡笔。

问题是,我在代码中使用了2个for循环。在第二个中,我得到一个NameError。我已经研究这个问题好几天了。

这是我的代码:
colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
crayons_count = [10, 5, 7, 8, 9, 2, 3]
for index, color in enumerate(colors):
print(index, color)
for (color) in colors and (number) in crayons_count:
print (color, number)

我期待得到这样的东西:

0 red
1 orange
2 yellow
3 green
4 blue
5 indigo
6 violet
red 10
orange 5
yellow 7
green 8
blue 9
indigo 2
violet 3

现在,我有了第一个循环的结果,但是从第二个循环中得到了这个错误:

这是一个错误为

的图像

可以使用zip方法

colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
crayons_count = [10, 5, 7, 8, 9, 2, 3]
for index, color in enumerate(colors):
print(index, color)
for (number, color) in zip(crayons_count, colors):
print(color, number)

输出
0 red
1 orange
2 yellow
3 green
4 blue
5 indigo
6 violet
red 10
orange 5
yellow 7
green 8
blue 9
indigo 2
violet 3

您可以通过构建一个列表在单个循环中完成此操作,然后,最后,只需调用print()

colors = ['red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']
crayons_count = [10, 5, 7, 8, 9, 2, 3]
a = []
for i, (color, count) in enumerate(zip(colors, crayons_count)):
a.insert(i, f'{i} {color}')
a.append(f'{color} {count}')
print(*a, sep='n')

输出:

0 red
1 orange
2 yellow
3 green
4 blue
5 indigo
6 violet
red 10
orange 5
yellow 7
green 8
blue 9
indigo 2
violet 3

相关内容

  • 没有找到相关文章

最新更新